91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2021-05-19 11:30:00 來源:億速云 閱讀:793 作者:小新 欄目:編程語言

這篇文章主要介紹Opencv如何繪制最小外接矩形、最小外接圓,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

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如何繪制最小外接矩形、最小外接圓

最小外接矩:

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

最小外接圓:

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

以上是“Opencv如何繪制最小外接矩形、最小外接圓”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天祝| 大丰市| 旬阳县| 红安县| 晋州市| 铁岭市| 如皋市| 乌海市| 阳城县| 岫岩| 喜德县| 张家界市| 舟曲县| 昌平区| 凤翔县| 荣昌县| 五常市| 江城| 庆元县| 若尔盖县| 普兰店市| 枣强县| 玉树县| 灌南县| 绥宁县| 永丰县| 蒙自县| 辽中县| 温州市| 许昌市| 砀山县| 平和县| 海宁市| 黔东| 米林县| 荣昌县| 上林县| 章丘市| 临安市| 巴楚县| 南昌市|