python+opencv识别图片中的圆形


Posted in Python onMarch 25, 2020

本文实例为大家分享了python+opencv识别图片中足球的方法,供大家参考,具体内容如下

先补充下霍夫圆变换的几个参数知识:

  • dp,用来检测圆心的累加器图像的分辨率于输入图像之比的倒数,且此参数允许创建一个比输入图像分辨率低的累加器。上述文字不好理解的话,来看例子吧。例如,如果dp= 1时,累加器和输入图像具有相同的分辨率。如果dp=2,累加器便有输入图像一半那么大的宽度和高度。
  • minDist,为霍夫变换检测到的圆的圆心之间的最小距离,即让我们的算法能明显区分的两个不同圆之间的最小距离。这个参数如果太小的话,多个相邻的圆可能被错误地检测成了一个重合的圆。反之,这个参数设置太大的话,某些圆就不能被检测出来了。
  • param1,有默认值100。它是method设置的检测方法的对应的参数。对当前唯一的方法霍夫梯度法,它表示传递给canny边缘检测算子的高阈值,而低阈值为高阈值的一半。
  • param2,也有默认值100。它是method设置的检测方法的对应的参数。对当前唯一的方法霍夫梯度法,它表示在检测阶段圆心的累加器阈值。它越小的话,就可以检测到更多根本不存在的圆,而它越大的话,能通过检测的圆就更加接近完美的圆形了。
  • minRadius,默认值0,表示圆半径的最小值。
  • maxRadius,也有默认值0,表示圆半径的最大值。

源代码:

# -*- coding: utf-8 -*- 
""" 
Created on Tue Sep 26 23:15:39 2017 
 
@author: tina 
""" 
import cv2 
import numpy as np 
import matplotlib.pyplot as plt 
 
img = cv2.imread('C:\\Users\\tina\\Pictures\\ahh\\ball.jpg') 
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
 
plt.subplot(121),plt.imshow(gray,'gray') 
plt.xticks([]),plt.yticks([]) 
 
circles1 = cv2.HoughCircles(gray,cv2.HOUGH_GRADIENT,1, 
600,param1=100,param2=30,minRadius=80,maxRadius=97) 
circles = circles1[0,:,:] 
circles = np.uint16(np.around(circles)) 
for i in circles[:]: 
 cv2.circle(img,(i[0],i[1]),i[2],(255,0,0),5) 
 cv2.circle(img,(i[0],i[1]),2,(255,0,255),10) 
 cv2.rectangle(img,(i[0]-i[2],i[1]+i[2]),(i[0]+i[2],i[1]-i[2]),(255,255,0),5) 
 
print("圆心坐标",i[0],i[1]) 
plt.subplot(122),plt.imshow(img) 
plt.xticks([]),plt.yticks([])

原图:

python+opencv识别图片中的圆形

识别后效果:

python+opencv识别图片中的圆形

更多图片识别精彩内容请点击专题: 《python图片处理操作》

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python基于Tkinter的HelloWorld入门实例
Jun 17 Python
Python基础教程之浅拷贝和深拷贝实例详解
Jul 15 Python
python中requests库session对象的妙用详解
Oct 30 Python
Python随机生成均匀分布在三角形内或者任意多边形内的点
Dec 14 Python
DataFrame中的object转换成float的方法
Apr 10 Python
Python使用matplotlib实现基础绘图功能示例
Jul 03 Python
python判断列表的连续数字范围并分块的方法
Nov 16 Python
python http基本验证方法
Dec 26 Python
Python求均值,方差,标准差的实例
Jun 29 Python
Python使用scrapy爬取阳光热线问政平台过程解析
Aug 14 Python
Python生成个性签名图片获取GUI过程解析
Dec 16 Python
python中round函数保留两位小数的方法
Dec 04 Python
python中的内置函数max()和min()及mas()函数的高级用法
Mar 29 #Python
python学习入门细节知识点
Mar 29 #Python
Python实现加载及解析properties配置文件的方法
Mar 29 #Python
Python读取properties配置文件操作示例
Mar 29 #Python
Python实现读取Properties配置文件的方法
Mar 29 #Python
Java实现的执行python脚本工具类示例【使用jython.jar】
Mar 29 #Python
教你使用python画一朵花送女朋友
Mar 29 #Python
You might like
PHP开发文件系统实例讲解
2006/10/09 PHP
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
2010/06/11 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
2012/12/16 PHP
php生成Android客户端扫描可登录的二维码
2016/05/13 PHP
PHP读取word文档的方法分析【基于COM组件】
2017/08/01 PHP
JavaScript全局函数使用简单说明
2011/03/11 Javascript
jQuery实现单击和鼠标感应事件
2015/02/01 Javascript
浅谈javascript中基本包装类型
2015/06/03 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
2016/07/07 Javascript
基于JavaScript实现购物网站商品放大镜效果
2016/09/06 Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
2017/01/20 Javascript
ES6生成器用法实例分析
2017/04/10 Javascript
Angularjs为ng-click事件传递参数
2017/06/15 Javascript
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
2018/07/24 Javascript
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
2018/12/12 Javascript
Vue3.0数据响应式原理详解
2019/10/09 Javascript
[02:23]1个至宝=115个英雄特效 最“绿”至宝拉比克“魔导师密钥”登场
2018/12/29 DOTA
python实现文件分组复制到不同目录的例子
2014/06/04 Python
Python Matplotlib库入门指南
2015/05/18 Python
Python编写登陆接口的方法
2017/07/10 Python
pandas按若干个列的组合条件筛选数据的方法
2018/04/11 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
python数据批量写入ScrolledText的优化方法
2018/10/11 Python
解决使用PyCharm时无法启动控制台的问题
2019/01/19 Python
详解CSS3开启硬件加速的使用和坑
2017/08/21 HTML / CSS
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
金宝贝童装官网:Gymboree
2016/08/31 全球购物
AT&T Wireless:手机、无限数据计划和配件
2018/06/03 全球购物
泰国健康和美容服务预订网站:GoWabi
2019/06/03 全球购物
英国时尚泳装品牌:Maru Swimwear
2019/10/06 全球购物
医院总经理职责
2013/12/26 职场文书
班主任经验交流会主持词
2014/04/01 职场文书
《二泉映月》教学反思
2014/04/15 职场文书
限期整改通知书
2015/04/22 职场文书
巧用 -webkit-box-reflect 倒影实现各类动效(小结)
2021/04/22 HTML / CSS
Android移动应用开发指南之六种布局详解
2022/09/23 Java/Android