我有这个matlab代码,我试图在矩阵颜色中找到'j'。我在opencv中找不到有用的函数,可以像matlab一样找到do.i.太麻烦了,你们能帮我吗?

if (find(Colorr==j))
    tt=tt+1;
    test=[test;ColorValues(:,j,1),ColorValues(:,j,2),ColorValues(:,j,3)];
end

这是我写给opencv secret 的代码
for(j=0;j<ColorValues.cols/2;j++)
    for(i=0;i<Color.cols;i++){
        if(j=input[Color.step*i+1]){
            tt++;
            for(k=0;k<ColorValues.rows;k++){

            }
        }

    }

最佳答案

假设Color是正确初始化的单通道cv::Mat,则可以结合使用重载的operator== cv::countNonZero() 来完成您想要的操作。 operator==返回一个掩码,如果Color中的值与j相匹配,则每个元素为1,否则为0。

if(cv::countNonZero(Color == j))
{
   // Do something...
}

关于c++ - matlab在opencv中查找函数实现?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17652180/

10-12 23:52