日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

cvMinMaxLoc函数实例

發布時間:2025/5/22 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cvMinMaxLoc函数实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
cvMinMaxLoc()找出圖片或一組數據中最大值及最小值的數據,以及最大值及最小值的位置,第一個引數為輸入IplImage資料結構或CvMat資料結構,第二個引數為輸出最小值double型別數據,第三個引數為輸出最大值double型別數據,第四個引數為輸出最小值位置CvPoint資料結構,第五個引數為輸出最大值位置CvPoint資料結構.找出圖片或一組數據中最大值及最小值的數據,以及最大值及最小值的位置,第一個引數為輸入IplImage資料結構或CvMat資料結構,第二個引數為輸出最小值double型別數據,第三個引數為輸出最大值double型別數據,第四個引數為輸出最小值位置CvPoint資料結構,第五個引數為輸出最大值位置CvPoint資料結構. cvMinMaxLoc(輸入IplImage或CvMat資料結構,輸出double型別最小值數據,輸出double型別最大值數據,輸出最小值CvPoint資料結構,輸出最大值CvPoint資料結構) cvMinMaxLoc(輸入IplImage或CvMat資料結構,輸出double型別最小值數據,輸出double型別最大值數據,輸出最小值CvPoint資料結構,輸出最大值CvPoint資料結構)。

?

cvMinMaxLoc()的實作
#include <cv.h>
#include <highgui.h>
#include <stdio.h>
?

int?main()
{
????IplImage *Image1=cvLoadImage("grotto.jpg"?,1?);

????double?MinValue;
????double?MaxValue;

????CvPoint MinLocation;
????CvPoint MaxLocation;

????cvSetImageCOI(Image1,1?);
????cvMinMaxLoc(Image1,&?MinValue,&?MaxValue,&?MinLocation,&?MaxLocation);

????printf("The Min number is : %.f/n"?,MinValue);
????printf("The position is : ( %d , %d )/n"?,MinLocation.x,MinLocation.y);
????printf("The Max number is : %.f/n"?,MaxValue);
????printf("The position is : (%d , %d )/n"?,MaxLocation.x,MaxLocation.y);

????cvNamedWindow("grotto"?,1?);
????cvShowImage("grotto"?,Image1);
????cvWaitKey(0?);
}

上面的結果是抓出這張圖片最大最小值的數據,選擇綠色這個通道,雖然這已經不算是極端值的意義了,不過它仍然是可以對一般圖形做處理,cvMinMaxLoc()可以同時找出最大最小值,也可以指出最大值的位置跟最小值的位置,而cvMinMaxLoc()必須對單通道做處理因此必須要用,cvSetImageCOI選定顏色,也可以支援ROI,甚至,cvMinMaxLoc()可以用遮罩的方式實作,使用的方法如下: #include <cv.h>
#include <highgui.h>
#include <stdio.h>
?

int?main()
{
????IplImage *Image1=cvLoadImage("grotto.jpg"?,1?);
????IplImage *MaskImage1=cvLoadImage("grotto_Threshold.bmp"?,0?);
????double?MinValue;
????double?MaxValue;

????CvPoint MinLocation;
????CvPoint MaxLocation;

????cvSetImageCOI(Image1,1?);
????cvMinMaxLoc(Image1,&?MinValue,&?MaxValue,&?MinLocation,&?MaxLocation,MaskImage1);

????printf("The Min number is : %.f/n"?,MinValue);
????printf("The position is : ( %d , %d )/n"?,MinLocation.x,MinLocation.y);
????printf("The Max number is : %.f/n"?,MaxValue);
????printf("The position is : (%d , %d )/n"?,MaxLocation.x,MaxLocation.y);

????cvNamedWindow("grotto"?,1?);
????cvShowImage("grotto"?,Image1);
????cvWaitKey(0?);
} 上面的程式也只對grotto_Threshold.bmp白色的部份做處理,從白色區域找出它的最大最小值以及它的位置,跟前面的程式差不多. // 原來cvminmaxloc的roi是這樣的:

cvSetImageROI(result,resultrect);
??cvMinMaxLoc(result, &min_val, &max_val,&min_loc,&max_loc, NULL );
??center.x=min_loc.x-(int)objsize/2;center.y=min_loc.y-(int)objsize/2;
??cvResetImageROI(result);

有時候,匹配要結合位置,所以之匹配的目標不一定是真正的目標。所以要求roi的最小值,這樣寫結果總不對,后來才發現,原來結果min_loc是roi的坐標,還要反算出原圖的坐標。

trackback:?http://blog.csdn.net/schoolers/article/details/4728400

轉載于:https://www.cnblogs.com/JohnShao/archive/2011/08/24/2151804.html

總結

以上是生活随笔為你收集整理的cvMinMaxLoc函数实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。