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 相关文章推荐
numpy.transpose对三维数组的转置方法
Apr 17 Python
tensorflow: 查看 tensor详细数值方法
Jun 13 Python
使用python语言,比较两个字符串是否相同的实例
Jun 29 Python
利用Python将每日一句定时推送至微信的实现方法
Aug 13 Python
使用python将最新的测试报告以附件的形式发到指定邮箱
Sep 20 Python
详解Django配置优化方法
Nov 18 Python
Python转换itertools.chain对象为数组的方法
Feb 07 Python
基于python的docx模块处理word和WPS的docx格式文件方式
Feb 13 Python
python实现提取str字符串/json中多级目录下的某个值
Feb 27 Python
python脚本和网页有何区别
Jul 02 Python
python爬虫中采集中遇到的问题整理
Nov 27 Python
pytorch 使用半精度模型部署的操作
May 24 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守护进程 加linux命令nohup实现任务每秒执行一次
2011/07/04 PHP
php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
2011/10/31 PHP
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
PHP生成指定随机字符串的简单实现方法
2015/04/01 PHP
php实现window平台的checkdnsrr函数
2015/05/27 PHP
PHP发送短信代码分享
2015/08/11 PHP
十分钟打造AutoComplete自动完成效果代码
2009/12/26 Javascript
jquery 通过name快速取值示例
2014/01/24 Javascript
前端轻量级MVC框架CanJS详解
2014/09/26 Javascript
javascript 常见功能汇总
2015/06/11 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
2016/03/19 Javascript
基于BootStrap环境写jQuery tabs插件
2016/07/12 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
2016/07/21 Javascript
jQuery数组处理函数整理
2016/08/03 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
2016/08/29 Javascript
js中获取键盘事件的简单实现方法
2016/10/10 Javascript
javascript基础练习之翻转字符串与回文
2017/02/20 Javascript
基于JavaScript实现选项卡效果
2017/07/21 Javascript
vue实现自定义日期组件功能的实例代码
2018/11/06 Javascript
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
2015/05/06 Python
Python输出带颜色的字符串实例
2017/10/10 Python
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
2018/03/19 Python
Python中str.join()简单用法示例
2018/03/20 Python
PyTorch的Optimizer训练工具的实现
2019/08/18 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
2020/02/12 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
2020/08/07 Python
python性能测试工具locust的使用
2020/12/28 Python
Python学习之time模块的基本使用
2021/01/17 Python
英国行业制服供应商:Alexandra
2019/09/14 全球购物
linux面试题参考答案(7)
2012/10/29 面试题
小学信息技术教学反思
2014/02/10 职场文书
学校对教师的评语
2014/04/28 职场文书
关于责任的演讲稿
2014/05/20 职场文书
人民检察院起诉书
2015/05/20 职场文书
2015年党小组工作总结
2015/05/26 职场文书