​How do I get the lowest value of all the non zero value pixels?​



问题就是题目:如何从图像中获得非零的最小值。

优质解答:

You can use mask :



You can use mask :



 



    Mat im = imread( "f:/lib/opencv/samples/data/lena.jpg", IMREAD_GRAYSCALE);
    Mat mask = im > 0;
    double minc[ 1], maxc[ 1];

    minMaxLoc(im, minc, maxc,NULL,NULL,mask);
    cout <<minc[ 0];

 


要点:



1、Mat mask = im>0;



这段代码的含义是所有im中大于0的地方在mask中为255,其他地方为0,很精炼;



2、 minMaxLoc(im, minc, maxc,NULL,NULL,mask);



最后一个参数的意思是过滤掉那些不需要的地方(mask中为255的地方)



 



所以合起来以后,代码就很好理解:



1、首先获得所有>0地方;



2、然后除去这些地方进行过滤。



HICEWORK!