国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

Opencv繪制最小外接矩形、最小外接圓

2020-01-26 13:27:52
字體:
來源:轉載
供稿:網友

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方法求輪廓的最小外接圓,獲取圓心和半徑信息,并繪制圓;

原始圖像:

最小外接矩:

最小外接圓:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 康平县| 龙胜| 新竹市| 辽阳县| 铜川市| 海安县| 砀山县| 上虞市| 伊金霍洛旗| 彰化县| 奎屯市| 沂水县| 中卫市| 札达县| 浮山县| 罗定市| 舟曲县| 汾西县| 罗定市| 应城市| 隆昌县| 宁明县| 桐柏县| 娱乐| 阳曲县| 南京市| 安化县| 吉安县| 临夏县| 外汇| 邢台县| 镇雄县| 白银市| 齐齐哈尔市| 永川市| 青海省| 新密市| 麟游县| 新巴尔虎右旗| 朝阳县| 荣成市|