python opencv最小外接矩形中心点_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> 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
{
//绘制轮廓
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方法求轮廓的最小外接圆,获取圆心和半径信息,并绘制圆;
原始图像:
最小外接矩:
最小外接圆:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持聚米学院。
python opencv最小外接矩形中心点_Opencv绘制最小外接矩形、最小外接圆相关推荐
- python opencv pdf脚本之家_OpenCV 3和Qt5计算机视觉应用开发 PDF 影印含源码版
给大家带来的一篇关于计算机视觉相关的电子书资源,介绍了关于OpenCV3.Qt5.计算机视觉.应用开发方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小117.2 MB,阿敏·艾哈迈迪·泰 ...
- Python+OpenCV 图像处理系列(3)—— 画线、矩形、画圆、画椭圆、画多边形
OpenCV 中的绘图函数 使用 OpenCV 绘制不同几何图形,其中包括的函数有 cv2.line() cv2.circle() cv2.rectangle() cv2.ellipse() cv2. ...
- 【Python+OpenCV】基于Harris角点的边缘提取以及矩形四角点检测
目录 开始之前必须要说的一些事 一.参考文章 二.实验目标 三.局限性声明 开始说正事了,所以标题一定要比第一个一级标题长 一.思路 (一)基于Harris角点检测[本文思路] (二)基于Hough变 ...
- python+OpenCv笔记(二):绘制几何图形
一.绘制直线 cv.line(img,pt1,pt2,color,thickness,lineType) 参数: img:要绘制的图像 pt1 pt2:绘制的起点与终点 color:颜色 thickn ...
- python opencv显示图片 窗口调节_opencv python全屏显示、置窗口大小和位置
opencv python全屏显示.设置窗口大小和位置 文章目录: 一.全屏显示图片或视频 二.设置窗口的大小和位置 1.设置窗口的大小 2.设置窗口的位置 一.全屏显示图片或视频 有时我们需要显示图 ...
- 使用Python+OpenCV+dlib为人脸生成口罩
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达推荐阅读 42个pycharm使用技巧,瞬间从黑铁变王者Google ...
- 面部表情识别java_使用Python+OpenCV+dlib为人脸生成口罩
来源:深度学习与计算机视觉 本文约4800字,建议阅读6分钟本文试图用OpenCV和dlib库来实现这个过程,在这里我们综合生成5种类型的口罩来绘制人脸图像. 本文使用OpenCV dlib库生成口罩 ...
- python opencv最小外接矩形_Opencv绘制最小外接矩形、最小外接圆
Opencv中求点集的最小外结矩使用方法minAreaRect,求点集的最小外接圆使用方法minEnclosingCircle. minAreaRect方法原型: RotatedRect minAre ...
- python+opencv获取最小外接矩形
python+opencv获取最小外接矩形 环境 代码 效果 环境 python版本:3.8 opencv版本:4.3.0.36 代码 from PIL import Image from pylab ...
最新文章
- 加速100倍,性能媲美SOTA,浙大知识蒸馏新方法FastDFKD
- iconv 文件编码转换
- UVa1062 - Containers贪心算法
- Python-OpenCV 处理视频(三): 标记运动轨迹
- 看《超级演说家》有感
- 210224阶段三信号量、互斥锁
- QT每日一练day27:绘制不规则窗体
- [工具类]DataTable与泛型集合List互转
- 微软删除最大的公开人脸识别数据集,只因员工离职?!
- CAD转GIS工具软件下载
- 使用jsBridge实现H5与原生App交互
- NI CompactRIO、labview在车载数据采集中的应用
- WMS仓库管理系统---(12)货位库存管理
- Linux 动、静态库原理深剖
- iPhone全部设备分辨率速查
- 又修改了winxp_blue皮肤的一些字体和颜色的小细节
- 2023计算机毕业设计SSM最新选题之java亚健康人群健康管理系统c4cyz
- 计算机散热程序,电脑的散热方法_百度经验
- dota攻略(dota全部英雄装备合成和英雄打法)
- 两年经验斩获蚂蚁/头条/PingCAP Offer,牛逼了
热门文章
- linux中sed或awk,Linux中sed和awk命令比较实例
- linux 转码软件,分享|Linux 桌面中 4 个开源媒体转换工具
- dart调用python_Dart - Isolate 并发
- enum python_python 枚举Enum
- python调研报告总结体会_调研报告心得体会
- android自动化测试录制,(二)屏幕录制在android自动化测试中应用2015.06.29
- wamp xampp mysql端口冲突,xampp安装后apache 80端口被占用的解决方法
- 预充电电路工作原理_变频冰箱开关电源电路工作原理及检修思路
- 计算机硬件数据处理过程,统计数据处理
- html5输入框增加语音,为任意输入框添加语音输入功能