环境:Python3.8 和 OpenCV

内容:图像外接矩形、最小外接矩形、凸包、外接圆、拟合椭圆的绘制

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt# 封装图片显示函数
def image_show(image):if image.ndim == 2:plt.imshow(image, cmap='gray')else:image = cv.cvtColor(image, cv.COLOR_BGR2RGB)plt.imshow(image)plt.show()if __name__ == '__main__':# 读取原图img_desk = cv.imread('desk.png')# 转换为灰度图img_gray = cv.cvtColor(img_desk, cv.COLOR_RGB2GRAY)# 二值化[thresh, img_bin] = cv.threshold(img_gray, -1, 255, cv.THRESH_OTSU)# 获取轮廓[cnt, hir] = cv.findContours(img_bin, cv.RETR_CCOMP, cv.CHAIN_APPROX_NONE)# 绘制轮廓 (绘制第九个轮廓-矩形)cv.drawContours(img_desk, cnt, 8, (0, 0, 255), 1)# 获取外接矩形的坐标点cns = cnt[8]X, Y, W, H = cv.boundingRect(cns)# 绘制外接矩形img_rec = cv.rectangle(img_desk.copy(), (X, Y), (X + W, Y + H), (255, 255, 0), 3)# 显示图像image_show(img_rec)# 获取最小外接矩形min_rec = cv.boxPoints(cv.minAreaRect(cns)).astype(np.int32)# 绘制最小外接矩形img_min_rec = cv.drawContours(img_desk.copy(), [min_rec], 0, (255, 0, 255), 3)# 显示图像image_show(img_min_rec)# 获取凸包坐标hull = cv.convexHull(cns)# 绘制凸包图形img_hull = cv.drawContours(img_desk.copy(), [hull], 0, (0, 255, 255), 3)# 显示图像image_show(img_hull)# 获取最小外接圆(X, Y), R = cv.minEnclosingCircle(cns)# 绘制最小外接圆img_circle = cv.circle(img_desk.copy(), (int(X), int(Y)), int(R), (125, 255, 0), 3)# 显示图像image_show(img_circle)# 获取拟合椭圆坐标ellipse = cv.fitEllipse(cns)# 绘制拟合椭圆img_ellipse = cv.ellipse(img_desk.copy(), ellipse, (255, 125, 0), 3)# 显示图像image_show(img_ellipse)

【千律】OpenCV基础:图像外接矩形、最小外接矩形、凸包、外接圆、拟合椭圆的绘制相关推荐

  1. C#使用OpenCV剪切图像中的圆形和矩形

    前言 本文主要介绍如何使用OpenCV剪切图像中的圆形和矩形. 准备工作 首先创建一个Wpf项目--WpfOpenCV,这里版本使用Framework4.7.2. 然后使用Nuget搜索[Emgu.C ...

  2. OpenCV在图像上画线、矩形、椭圆、多边形、填充的多边形、圆、显示文字

    OpenCV在图像上随机画直线.椭圆.多边形.圆.显示文字 代码如下: /*** @file Drawing_2.cpp* @brief Simple sample code*/#include &l ...

  3. 使用Python,OpenCV对图像进行亚像素点检测,并拟合椭圆进行绘制

    这篇博客将介绍如何使用Python,OpenCV对图像进行亚像素检测,并对亚像素点进行椭圆拟合绘制. 1. 效果图 原始图上绘制拟合椭圆 VS 原始图上绘制拟合椭圆及亚像素点绘制随机半径及颜色的圆 V ...

  4. opencv基础--图像模板匹配

    参考:https://blog.csdn.net/ivanhawking/article/details/83182692(该链接附载链接有处理多目标,旋转,缩放等匹配的方法) 1.概述 图像匹配是指 ...

  5. python opencv最小外接矩形_Opencv绘制最小外接矩形、最小外接圆

    Opencv中求点集的最小外结矩使用方法minAreaRect,求点集的最小外接圆使用方法minEnclosingCircle. minAreaRect方法原型: RotatedRect minAre ...

  6. 最小外接矩形思路以及实现

    最小外接矩形 外接矩形计算 对一个凸多边形进行外接矩形计算,需要知道当前面的最大xy 和最小xy值,即可获得外接矩形 最小外接矩形计算 对凸多边形的每一条边都绘制一个外接矩形求最小面积.下图展示了计算 ...

  7. cv2.minAreaRect() 生成最小外接矩形

    简介 使用python opencv返回点集cnt的最小外接矩形,所用函数为 cv2.minAreaRect(cnt) ,cnt是所要求最小外接矩形的点集数组或向量,这个点集不定个数. 1 cv2.m ...

  8. Halcon画矩形框(正矩形和最小外接矩形)

    利用halcon,画出矩形框(两种,根据需要选择).可用于在瑕疵检测中,给瑕疵框住外矩形框. 1.正矩形框 正矩形框,指的是没有发生倾斜,竖直的矩形框. 该矩形框,不仅能够完全覆盖region区域,而 ...

  9. opencv 图像轮廓特征 图像面积,轮廓周长,外接矩形、最小外接矩形、最小外接圆、拟合椭圆

    找出图像轮廓 contours, hierarchy = cv.findContours(thresh, 3, 2) 画出图像轮廓 cnt = contours[1] cv.drawContours( ...

最新文章

  1. php sql中regexp,[NCTF2019]SQLi(regexp注入)
  2. java 虚拟机指令集_jvm规范-jvm虚拟指令集及编译
  3. 波士顿动力机器狗学会「撒尿」!拉风狗还不上街遛一遛?
  4. NHibernate: Session.Save 采用版本控制时无必要地自动Update版本字段的问题
  5. python3 列表的增删改查
  6. 组会PPT20201030《复现chen结果及初始密度影响》
  7. mysql并发 node_nodejs写入mysql单次数据量过大的解决方法_沃航科技
  8. 21 个编程的热门/冷门趋势
  9. drools 7.x 模板的简单使用
  10. 转反射的第一部分:发现和执行
  11. 主机overlay和网络overlay_边缘计算中kubernetes网络能大一统吗?
  12. Win10任务栏卡死情况解决方案
  13. 设有一个 Student 数据库,包括 数据库,包括 学生 , 课程 , 选修三个关系: 三个关系: 学生 学生:S ( Sno ,Sname ,Ssex ,Sage,Sdept ) 课程 课程:
  14. win7如何计算机共享的打印机驱动程序,细说win7如何添加打印机
  15. C++线程池原理及创建
  16. Epson针式打印机打印十六进制内容解决方案
  17. 原来将Excel表格转换成应用程序如此简单
  18. C语言制作的讯飞语音合成、识别、唤醒标准调用接口DLL
  19. AndroidStudio开发的领养宠物app
  20. 刚刚,一页马克思手稿在阿里拍卖上拍到了290万

热门文章

  1. matlab静脉识别,GitHub - ChenShihuan/Finger-vein-recognition: 华南理工大学课程设计——手指静脉识别项目...
  2. 滴滴“洪流联盟”蓄力,无边界合作推进中国经验走向世界
  3. 计算机技术包括云计算吗,云计算技术A
  4. 饺子播放器解决视频黑边
  5. 【图文并茂】一键重装win7系统详细教程
  6. 小技巧之Excel中提取字符串里的数字
  7. 树莓派采集温湿度传感器Si7021
  8. 写在入职字节跳动一周年
  9. 有关p2p的两个概念
  10. 保研夏令营记录-上交清华深研院北大信工中科院自动化所