matlab在opencv中查找函数实现?

时间:2013-07-15 10:34:12

标签: c++ matlab opencv image-processing mat

我有这个matlab代码,我试图在矩阵颜色中找到'j'。我无法在opencv中找到一个有用的函数,它可以像matlab一样找到do.i尝试了一些迭代方法,用3循环,但这太麻烦了,你们可以帮助我吗?

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

这是我编写的代码以转换为opencv

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++){

            }
        }

    }

1 个答案:

答案 0 :(得分:3)

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

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