【问题标题】:matlab find function implementation in opencv?matlab在opencv中找到函数实现?
【发布时间】:2013-07-13 04:42:06
【问题描述】:

我有这个matlab代码,我试图在矩阵颜色中找到'j'。我在opencv中找不到一个有用的函数,它可以像matlab find do一样做同样的工作。我尝试了一些迭代方法3 for循环,但是太麻烦了,你们能帮帮我吗?

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

            }
        }

    }

【问题讨论】:

  • 如果我们可以在opencv中实现的话,这个find命令将非常有用。
  • 也许already implemented operation 适合您。也许,你最好的选择就是繁琐的方式。一个想法是例如修改 minMaxIdx() 并返回具有所需索引的容器。
  • 我是opencv的初学者。所以无法很好地理解所有功能。你能详细说明一下吗
  • 检查this
  • 这没有回答我的问题。

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


【解决方案1】:

假设Color是一个正确初始化的单通道cv::Mat,你可以使用重载的operator==cv::countNonZero()的组合来做你想做的事。 operator== 返回一个掩码,如果Color 中的值与j 匹配,则每个元素为一,否则为零。

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

【讨论】:

    猜你喜欢
    • 2015-11-28
    • 2014-05-28
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多