欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當前位置:主頁 > 軟件編程 > C語言 >

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

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次

Opencv中求點集的最小外結(jié)矩使用方法minAreaRect,求點集的最小外接圓使用方法minEnclosingCircle。

minAreaRect方法原型:

RotatedRect minAreaRect( InputArray points ); 

輸入?yún)?shù)points是所要求最小外結(jié)矩的點集數(shù)組或向量;

minEnclosingCircle方法原型:

void minEnclosingCircle( InputArray points, 
                   CV_OUT Point2f& center, CV_OUT float& radius ); 

第一個參數(shù)points是所要求最小外結(jié)圓的點集數(shù)組或向量;

第二個參數(shù)Point2f類型的center是求得的最小外接圓的中心坐標;

第三個參數(shù)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); //最小外結(jié)圓畫布 
  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. 對原始圖像均值濾波并二值化;

2. 求圖像的最外層輪廓;

3.  使用minAreaRect方法求輪廓的最小外接矩形,轉(zhuǎn)化求得矩形的四個頂點坐標,并繪制矩形;

4.  使用minEnclosingCircle方法求輪廓的最小外接圓,獲取圓心和半徑信息,并繪制圓;

原始圖像:

最小外接矩:

最小外接圓:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持我們。

上一篇:C++基礎學習之利用兩個棧實現(xiàn)一個隊列

欄    目:C語言

下一篇:c++語言中虛函數(shù)實現(xiàn)多態(tài)的原理詳解

本文標題:Opencv繪制最小外接矩形、最小外接圓

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/293.html

網(wǎng)頁制作CMS教程網(wǎng)絡編程軟件編程腳本語言數(shù)據(jù)庫服務器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導致的法律后果,本站均不負任何責任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有