這篇文章主要介紹Opencv如何繪制最小外接矩形、最小外接圓,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
成都創(chuàng)新互聯專注于龍游網站建設服務及定制,我們擁有豐富的企業(yè)做網站經驗。 熱誠為您提供龍游營銷型網站建設,龍游網站制作、龍游網頁設計、龍游網站官網定制、小程序制作服務,打造龍游網絡公司原創(chuàng)品牌,更為您提供龍游網站排名全網營銷落地服務。Opencv中求點集的最小外結矩使用方法minAreaRect,求點集的最小外接圓使用方法minEnclosingCircle。
minAreaRect方法原型:
RotatedRect minAreaRect( InputArray points );
輸入參數points是所要求最小外結矩的點集數組或向量;
minEnclosingCircle方法原型:
void minEnclosingCircle( InputArray points, CV_OUT Point2f& center, CV_OUT float& radius );
第一個參數points是所要求最小外結圓的點集數組或向量;
第二個參數Point2f類型的center是求得的最小外接圓的中心坐標;
第三個參數float類型的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); //最小外接矩形畫布 Mat imageContours1=Mat::zeros(image.size(),CV_8UC1); //最小外結圓畫布 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); //繪制輪廓的最小外結矩形 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); } //繪制輪廓的最小外結圓 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. 對原始圖像均值濾波并二值化;
2. 求圖像的最外層輪廓;
3. 使用minAreaRect方法求輪廓的最小外接矩形,轉化求得矩形的四個頂點坐標,并繪制矩形;
4. 使用minEnclosingCircle方法求輪廓的最小外接圓,獲取圓心和半徑信息,并繪制圓;
原始圖像:
最小外接矩:
最小外接圓:
以上是“Opencv如何繪制最小外接矩形、最小外接圓”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯網站建設公司行業(yè)資訊頻道!
另外有需要云服務器可以了解下創(chuàng)新互聯建站www.rwnh.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文名稱:Opencv如何繪制最小外接矩形、最小外接圓-創(chuàng)新互聯
本文地址:http://www.rwnh.cn/article2/dsohoc.html
成都網站建設公司_創(chuàng)新互聯,為您提供移動網站建設、全網營銷推廣、電子商務、域名注冊、自適應網站、微信公眾號
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯