这篇文章主要介绍Opencv如何绘制最小外接矩形、最小外接圆,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、网站建设、荥阳网络推广、小程序设计、荥阳网络营销、荥阳企业策划、荥阳品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供荥阳建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
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> contours; vector 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 作图步骤:
1. 对原始图像均值滤波并二值化;
2. 求图像的最外层轮廓;
3. 使用minAreaRect方法求轮廓的最小外接矩形,转化求得矩形的四个顶点坐标,并绘制矩形;
4. 使用minEnclosingCircle方法求轮廓的最小外接圆,获取圆心和半径信息,并绘制圆;
原始图像:
最小外接矩:
最小外接圆:
以上是“Opencv如何绘制最小外接矩形、最小外接圆”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!
分享文章:Opencv如何绘制最小外接矩形、最小外接圆
文章起源:http://cdxtjz.cn/article/pecgii.html