日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cvMinMaxLoc函数实例

發布時間:2025/5/22 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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函数实例的全部內容,希望文章能夠幫你解決所遇到的問題。

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