這篇文章主要介紹Opencv如何繪制最小外接矩形、最小外接圓,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
成都創(chuàng)新互聯(lián)專(zhuān)注于龍游網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供龍游營(yíng)銷(xiāo)型網(wǎng)站建設(shè),龍游網(wǎng)站制作、龍游網(wǎng)頁(yè)設(shè)計(jì)、龍游網(wǎng)站官網(wǎng)定制、小程序制作服務(wù),打造龍游網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供龍游網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。Opencv中求點(diǎn)集的最小外結(jié)矩使用方法minAreaRect,求點(diǎn)集的最小外接圓使用方法minEnclosingCircle。
minAreaRect方法原型:
RotatedRect minAreaRect( InputArray points );
輸入?yún)?shù)points是所要求最小外結(jié)矩的點(diǎn)集數(shù)組或向量;
minEnclosingCircle方法原型:
void minEnclosingCircle( InputArray points, CV_OUT Point2f& center, CV_OUT float& radius );
第一個(gè)參數(shù)points是所要求最小外結(jié)圓的點(diǎn)集數(shù)組或向量;
第二個(gè)參數(shù)Point2f類(lèi)型的center是求得的最小外接圓的中心坐標(biāo);
第三個(gè)參數(shù)float類(lèi)型的radius是求得的最小外接圓的半徑;
使用minAreaRect和minEnclosingCircle方法分別求最小外接矩和圓:
#include "core/core.hpp" #include "highgui/highgui.hpp" #include "imgproc/imgproc.hpp" #include "iostream" using namespace std; using namespace cv; int main(int argc,char *argv[]) { Mat imageSource=imread(argv[1],0); imshow("Source Image",imageSource); Mat image; blur(imageSource,image,Size(3,3)); threshold(image,image,0,255,CV_THRESH_OTSU); imshow("Threshold Image",image); //尋找最外層輪廓 vector<vector<Point>> contours; vector<Vec4i> hierarchy; findContours(image,contours,hierarchy,RETR_EXTERNAL,CHAIN_APPROX_NONE,Point()); Mat imageContours=Mat::zeros(image.size(),CV_8UC1); //最小外接矩形畫(huà)布 Mat imageContours1=Mat::zeros(image.size(),CV_8UC1); //最小外結(jié)圓畫(huà)布 for(int i=0;i<contours.size();i++) { //繪制輪廓 drawContours(imageContours,contours,i,Scalar(255),1,8,hierarchy); drawContours(imageContours1,contours,i,Scalar(255),1,8,hierarchy); //繪制輪廓的最小外結(jié)矩形 RotatedRect rect=minAreaRect(contours[i]); Point2f P[4]; rect.points(P); for(int j=0;j<=3;j++) { line(imageContours,P[j],P[(j+1)%4],Scalar(255),2); } //繪制輪廓的最小外結(jié)圓 Point2f center; float radius; minEnclosingCircle(contours[i],center,radius); circle(imageContours1,center,radius,Scalar(255),2); } imshow("MinAreaRect",imageContours); imshow("MinAreaCircle",imageContours1); waitKey(0); return 0;
作圖步驟:
1. 對(duì)原始圖像均值濾波并二值化;
2. 求圖像的最外層輪廓;
3. 使用minAreaRect方法求輪廓的最小外接矩形,轉(zhuǎn)化求得矩形的四個(gè)頂點(diǎn)坐標(biāo),并繪制矩形;
4. 使用minEnclosingCircle方法求輪廓的最小外接圓,獲取圓心和半徑信息,并繪制圓;
原始圖像:
最小外接矩:
最小外接圓:
以上是“Opencv如何繪制最小外接矩形、最小外接圓”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站vcdvsql.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
本文名稱(chēng):Opencv如何繪制最小外接矩形、最小外接圓-創(chuàng)新互聯(lián)
本文地址:http://vcdvsql.cn/article2/dsohoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷(xiāo)推廣、電子商務(wù)、域名注冊(cè)、自適應(yīng)網(wǎng)站、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容