c++ - OpenCV从矩阵获取条件库最大元素位置

标签 c++ opencv matrix max

我检查了 minMaxLoc 但它只给出了矩阵的最大和最小位置。我需要找到的是最大值或等于其他数字。例如(abc >=7) 然后给出矩阵中适用此条件的所有位置。

Matlab 示例: [a,b] = find( heMap >= (max(max(heMap)) ));

那么我如何满足 opencv 中的条件以获得特定的最大值或最小值。?请帮忙

问候

目前我正在使用这种方式

double getMaxValue(Mat hemap)
{
MatConstIterator_<double> it = hemap.begin<double>(), it_end = hemap.end<double>();
double maxdata=0;

for(; it != it_end; ++it)
{
    if(*it>maxdata)
    {
        maxdata = *it;
    }
}

return maxdata;
}

最佳答案

我不知道有任何内置函数可以做到这一点。您可以将您的矩阵与一个为您提供 bool 矩阵的元素进行比较。但是我不知道有什么函数可以为您提供每个非零元素的位置,例如 find

但是循环遍历数组并自己进行比较非常简单:

int thresh = 50;
for(int y=0;y<matrix.rows; y++)
  for(int x=0;x<matrix.cols; x++)
    if( matrix.at<uchar>(y,x) >= thresh)
      printf(" (%d,%d) = %d\n",x,y, matrix.at<uchar>(y,x));

关于c++ - OpenCV从矩阵获取条件库最大元素位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10267319/

相关文章:

c++ - 如何让 MyClass 的用户通过编译器标志控制类的哪个版本被实例化?

opencv - 更改 OpenCV 视频文件分辨率

c++ - 反向鱼眼畸变

visual-studio-2008 - 为什么我在 Windows 上安装预编译版本的 LAPACK 时会出错?

r - r 中的两个矩阵相减

python - 如何在 Python 中添加二维数组的相邻元素而不必使用嵌套循环?

c++字符串比较运算符>根据两个字符串的比较方式产生不同的输出

c++ - 从 C++ STL 关联容器连接键/值

c++ - 在 QTCreator .pro 文件中使用 QMAKE 链接标志顺序

c++ - OpenCV:如何使用 Haar Classifier Cascade 提高眼睛检测的准确性?