OpenCV 中获取图像或矩阵最大、最小值的简便方法

C++: void minMaxLoc(InputArraysrc, doubleminVal, double maxVal=0, Point* minLoc=0,Point* maxLoc=0, InputArraymask=noArray()**)

C++: void minMaxLoc(const SparseMat&a, doubleminVal*, doublemaxVal, intminIdx=0, int*maxIdx=0 )

Opencv中的minMaxLoc()函数可以在一幅图像上查找最大最小值及其位置坐标。里面参数很多,比如最大值maxVlaue、最小值minValue、最大值位置maxLoc、最小值位置minLoc等。看起来很繁琐但是用起来却很方便,一些不需要的参数,在调用时直接设置为0即可。函数中,最后一个参数是mask,默认为noArray()。这是一个很有用的参数。用法也很简单,先预设一个矩阵mask,其大小、数据类型与src一致,每个像素值为0。如果像搜索src某个局部区域的最大最小值,只需要把mask对应区域设置为大于0的数值即可。下面我们看一个示例:
int main()
{
    Mat img=imread("D:/Qt/MyImage/building.jpg",0);

    Mat mask(img.rows,img.cols,img.type(),Scalar::all(0));
    mask(Rect(150,50,100,100))=255 ;//设定搜索区域
    imshow("mask",mask);

    imshow("img",img);
    double maxv;
    minMaxLoc(img,0,&maxv,0,0,mask);
    cout<<"maxvalue="<<maxv<<endl;
    waitKey();
    return 0;
}

原文链接: https://www.cnblogs.com/phoenixdsg/p/8416009.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/268877

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月14日 下午7:45
下一篇 2023年2月14日 下午7:46

相关推荐