我有这个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++){
}
}
}
答案 0 :(得分:3)
假设Color
是正确初始化的单渠道cv::Mat
,您可以使用重载operator==
和cv::countNonZero()
的组合来执行您想要的操作。如果operator==
中的值与Color
匹配,则j
会返回一个掩码,其中每个元素为1,否则为零。
if(cv::countNonZero(Color == j))
{
// Do something...
}