直接放图放程序

import cv2 as cvif __name__ == "__main__":im = cv.imread("image/circle_patten.jpg")    # 读图imgray = cv.cvtColor(im, cv.COLOR_BGR2GRAY)    # 转灰度图_, thresh = cv.threshold(imgray, 130, 255, cv.THRESH_BINARY + cv.THRESH_OTSU)  # 二值化 image, contours, hierarchy = cv.findContours(thresh, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE)  # 轮廓查找retval = cv.fitEllipse(contours[1])  # 取其中一个轮廓拟合椭圆img = cv.ellipse(im, retval, (0, 0, 255), thickness=2) # 在原图画椭圆cv.imshow("mark_ellipse[1]", img)print(retval) # 这里可以查看下fitEllipse的返回值的结构cv.waitKey()

fitEllipse

ellipse

注意到这里的形参box即是 fitEllipse的返回值

其类型为RotatedRect

RotatedRect

在上面的程序中,print(retval)得到的值为:

((579.71240234375, 449.0208740234375), (49.17593765258789, 49.56596755981445), 96.06968688964844)

对应下图可知retval[0]为椭圆中心坐标,retval[1]是外接椭圆的矩形的高和宽,retval[2]为旋转角

opencv-python 轮廓查找 椭圆拟合 画椭圆相关推荐

  1. OpenCV的轮廓查找和填充

    OpenCV的轮廓查找有C版本和C++版本,当轮廓比较复杂的时候,例如嵌入多层轮廓,如果方法不当那么很容易会漏处理一些轮廓.本文介绍了复杂轮廓场景下的几种主要的查找轮廓和颜色填充方法. 1:cvFin ...

  2. OpenCV python 轮廓的极值点

    OpenCV python 轮廓的极值点 处理图片:[cs1.jpg] import cv2 import numpy as npdef get_contour(img):""&q ...

  3. opencv c++ 轮廓逼近与拟合

    1.概念   轮廓逼近:指用越来越多的多边形对轮廓进行拟合,从而获得与轮廓近似的多边形,并获取多边形的形状.目的是为了减少编码点(人话:减少数据量)   拟合:生成最相似的圆或多边形. 2.代码 AP ...

  4. Python 用 OpenCV 画椭圆 (5)

    利用 OpenCV 自带的 ellipse() 函数画椭圆 并显示,其函数声明如下: cv2.ellipse(img, center, axes, rotateAngle, startAngle, e ...

  5. python外包凹多边形生成_Python实现图片查找轮廓、多边形拟合、最小外接矩形代码...

    1.概述 经常用到轮廓查找和多边形拟合等opencv操作,因此记录以备后续使用.本文代码中的阈值条件对图片没有实际意义,仅仅是为了测试. 原图为: 2.测试代码: import cv2 import ...

  6. 【OpenCv】图像的轮廓查找

    1 原理   边界或者轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度.轮廓在形状分析和物体的检测和识别中很有用. 在机器视觉领域最常用的轮廓查找的算法之一是 Moore ...

  7. 数学老师必看,教您快速画椭圆

    大家应该都对椭圆不陌生,它在数学中占有一定的比重,是中学时代必学的圆锥曲线之一,也是历来考试的重点和难点.在黑板上画椭圆有点困难,我们可以借助专业的课件制作工具快速画椭圆,如果你还不知道怎么操作,下面 ...

  8. 基于OpencV的轮廓填充算法在3D打印机中的应用

    在这之前,我们需要了解一下SLC文件的格式,只有对格式有一点了解,我们才能做接下来的工作,首先SLC文件中是通过描述各层中的多段线来描述整个模型的,多段线之间两两相连.对单个轮廓来说,最后一点必须等于 ...

  9. java 椭圆拟合,OpenCV画轮廓的外界圆矩形椭圆等

    #include #include #include #include using namespace std; #pragma   comment(lib,"cv.lib") # ...

最新文章

  1. 什么是电子路径用于连接计算机主板上的芯片,计算机的组成部分及功能346.doc...
  2. Oracle数据库中的分页--rownum
  3. svnserve.conf: Option expected的问题解决方法
  4. iframe的子界面获取父界面的标签元素
  5. java 分页查询_java开发之分页查询
  6. 二维计算几何基础知识
  7. 管理mysql表知识点_数据库复习提纲(必考知识点整理)
  8. leetcode 84. Largest Rectangle in Histogram | 84. 柱状图中最大的矩形(单调栈)
  9. ElasticSearch Pipeline 为新增数据设置更新时间
  10. java nio底层实现_Java NIO 底层原理
  11. UI设计师素材干货|APP底部导航模板
  12. scipy中稀疏矩阵coo_matrix, csr_matrix 的使用
  13. python 去除水印_cv2 去除图片水印
  14. 马尔可夫毯(Markov Blanket)
  15. SRS之SrsConfig类
  16. 2自由度悬架LQR控制
  17. 解开My SQL workbench安全模式
  18. 编写bat命令打开文件夹或者doc,txt文件
  19. DXC Technology Company旗下公司Luxoft完成对CMORE Automotive的收购
  20. 初探区块链的挑战,应用和发展

热门文章

  1. Windows的所有句柄类型定义
  2. Leetcode 1162:地图分析(超详细的解法!!!)
  3. linux git@ permission deny 问题
  4. 图像退化 / 复原处理的模型
  5. iqoo怎么开启root,iqoo手机怎么开启双系统
  6. SSH企业案例_CRM客户管理系统(六):Easyui列表展示
  7. 网络经济与企业管理知识点总结
  8. 在HTML中使用css3实现雪人动画效果
  9. 啤酒节上尿意浓-SVG低级艺术展示
  10. 设计模式概述 以及 23种设计模式的介绍