如果对象是圆形的,那么使用cv2.minEnclosingCircle是很好的。或者,您可以使用cv2.fitEllipse来找到对象周围最合适的椭圆。记住一定要在黑色背景下找到白色物体的轮廓。在import cv2

import numpy as np

img = cv2.imread("1.jpg")

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

_,thresh = cv2.threshold(gray,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)

thresh = cv2.bitwise_not(thresh)

element = cv2.getStructuringElement(shape=cv2.MORPH_RECT, ksize=(5, 5))

morph_img = thresh.copy()

cv2.morphologyEx(src=thresh, op=cv2.MORPH_CLOSE, kernel=element, dst=morph_img)

contours,_ = cv2.findContours(morph_img,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

areas = [cv2.contourArea(c) for c in contours]

sorted_areas = np.sort(areas)

#bounding box (red)

cnt=contours[areas.index(sorted_areas[-1])] #the biggest contour

r = cv2.boundingRect(cnt)

cv2.rectangle(img,(r[0],r[1]),(r[0]+r[2],r[1]+r[3]),(0,0,255),2)

#min circle (green)

(x,y),radius = cv2.minEnclosingCircle(cnt)

center = (int(x),int(y))

radius = int(radius)

cv2.circle(img,center,radius,(0,255,0),2)

#fit ellipse (blue)

ellipse = cv2.fitEllipse(cnt)

cv2.ellipse(img,ellipse,(255,0,0),2)

cv2.imshow("morph_img",morph_img)

cv2.imshow("img", img)

cv2.waitKey()

python 拟合圆心_OpenCV:将单个圆拟合到图像(在Python中)相关推荐

  1. python b站 排行_【圆老司】用python爬虫追踪知乎/B站大V排行

    之前我们一位同学在学习和实践 python 数据分析的时候把知乎.B站.虎扑上的各种信息都抓了个遍,比如粉丝数.关注关系.发布时间.阅读量.回复数.标题关键字.地域分布--然后又对这些数据进行了整理, ...

  2. Python调整图片大小并保存调整后的图像

    Python调整图片大小并保存调整后的图像 目录 Python调整图片大小并保存调整后的图像 #原始图像

  3. visionpro求旋转中心,拟合圆心操作

    3点拟合方式 /// <summary>/// vpro拟合圆求圆心,3点/// </summary>/// <param name="p1X"> ...

  4. 最小二乘法拟合圆心公式推导及基于opencv的程序实现

    最小二乘法拟合圆心 文章为个人学习过程中笔记,原理部分参考其他作者内容,侵权必删 最小二乘法(least squares analysis)是一种数学优化技术,它通过最小化误差的平方和找到一组数据的最 ...

  5. 圆拟合算法(距离之和最小)

    上一篇博客介绍了最小二乘法拟合圆的方法.这种方法对误差符合正态分布的数据点很有效.但是在机器视觉应用中经常会碰到一些干扰点.这些干扰点多数时候是偏向某一个方向的.这时要是用最小二乘法拟合,拟合出的圆会 ...

  6. 最小二乘法拟合圆心与半径

    公众号"轻松玩转机器人",欢迎关注. 1.算法介绍 最小二乘法的目的,通俗来说,就是拟合变量之间的关系. 由于现实世界观测的变量存在噪声,找不到完美.不存在误差的关系,因此我们退而 ...

  7. 最小二乘法-圆拟合(不啰嗦)

    原理:原理部分网上大部分可以搜得到,以一句很简单的话就是是通过最小化误差的平方和找到一组数据的最佳函数匹配(自行百度). 作用:如果现在有一张图片,需要你拟合图片中的圆. 需要拟合的圆图片: 方法:最 ...

  8. 最小二乘法拟合直线簇交点及Ransac拟合

    最小二乘法拟合直线簇交点及Ransac拟合 最小二乘法的实现 Ransac优化 语言环境:Python 直线簇方程: y=p→+v→∗ty=\overrightarrow p+\overrightar ...

  9. 过度拟合_过度拟合和尺寸缩减的过度拟合的最终指南

    过度拟合 Let us consider that we are designing a machine learning model. A model is said to be a good ma ...

最新文章

  1. 供销大集有潜力吗_菌肥内幕被揭开!快看你买的靠谱吗?
  2. 5、python学习之变量
  3. java commons-chain_Apache commons chain 初探
  4. ubuntu安装环境软件全文档
  5. 手机版腐蚀rust_手机进水后黑屏,该怎么办?切忌做这几件事
  6. spring的事务隔离_spring事务基础及常见问题详解
  7. 计算机网络数据链路层封装,计算机网络(3.3)数据链路层- 封装成帧
  8. 怎么让Windows2012和Windows2008多用户同时远程
  9. 耳机使用说明书 jbl ua_JBL UA联名款,全新一代真无线运动耳机“UA小黑盒”今日天猫首发...
  10. paip.java swt 乱码问题解决
  11. Tomcat的Document base ……does not exist or is not a readable directory错误
  12. vue做混合式app_基于vue2.0开发混合app的思考
  13. office2016 excel复制粘贴就卡死
  14. 各向异性扩散 matlab,各向异性扩散PM模型原理与C++实现
  15. java获取当前日,当前月的开始时间和结束时间,当前季度的开始时间和结束时间
  16. Redis布隆过滤器与布谷鸟过滤器
  17. java小折叠车测评_java的折叠车怎么样?
  18. android图片压缩不失真实战
  19. 蓝牙模块的配置(HC05):修改密码、修改模块名字、修改波特率。
  20. C 语言常量pi,如何在C中使用PI常数

热门文章

  1. 40-400-035-运维-优化-pt-variable-advisor优化工具
  2. 【es】es Plugin 组件加载 PluginsService
  3. 【ambari】Ambari Rest api 使用
  4. 【LogStash】LogStash 配置后无法启动的问题
  5. Maven : error: missing or invalid dependency detected while loading class file 'RDD.class'
  6. ogon denied for user/password. Able to find the database server and database, but the login request
  7. drools 7.11.0.Final使用
  8. hadoop家族简介
  9. seafile私有网盘搭建
  10. c#项目 java项目_c#项目转Java项目!!!!!