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程序中的实现及简单改进
May 04 Python
python如何统计序列中元素
Jul 31 Python
分析python请求数据
Aug 19 Python
PyCharm设置护眼背景色的方法
Oct 29 Python
python如何实现一个刷网页小程序
Nov 27 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
Jun 21 Python
Pyspark获取并处理RDD数据代码实例
Mar 27 Python
Python流程控制语句的深入讲解
Jun 15 Python
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
Jul 28 Python
java字符串格式化输出实例讲解
Jan 06 Python
python+selenium小米商城红米K40手机自动抢购的示例代码
Mar 24 Python
用PYTHON去计算88键钢琴的琴键频率和音高
Apr 10 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/12/06 PHP
简单的php数据库操作类代码(增,删,改,查)
2013/04/08 PHP
PHP实现模仿socket请求返回页面的方法
2014/11/04 PHP
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
PHP中两个float(浮点数)比较实例分析
2015/09/27 PHP
JavaScript 学习笔记(十二) dom
2010/01/21 Javascript
JavaScript类库D
2010/10/24 Javascript
用js实现小球的自由移动代码
2013/04/22 Javascript
jQuery实现可收缩展开的级联菜单实例代码
2013/11/27 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
2014/10/20 Javascript
jQuery 生成svg矢量二维码
2016/08/09 Javascript
详解Vue.js动态绑定class
2016/12/20 Javascript
js模拟微博发布消息
2017/02/23 Javascript
Node.js利用断言模块assert进行单元测试的方法
2017/09/28 Javascript
vue2.0与bootstrap3实现列表分页效果
2017/11/28 Javascript
使用webpack构建应用的方法步骤
2019/03/04 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
详解微信UnionID作用
2019/05/15 Javascript
layui-table对返回的数据进行转变显示的实例
2019/09/04 Javascript
Node.js控制台彩色输出的方法与原理实例详解
2019/12/01 Javascript
Python打印斐波拉契数列实例
2015/07/07 Python
Jupyter中直接显示Matplotlib的图形方法
2018/05/24 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
2019/06/04 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
Python爬取365好书中小说代码实例
2020/02/28 Python
协程Python 中实现多任务耗资源最小的方式
2020/10/19 Python
Python和Bash结合在一起的方法
2020/11/13 Python
PyCharm 光标变成黑块的解决方式
2021/02/06 Python
CSS3对图片照片进行边缘模糊处理的实现
2018/08/08 HTML / CSS
俄罗斯购买剧院和演唱会门票网站:Parter.ru
2019/11/09 全球购物
中文专业求职信
2014/06/20 职场文书
乡镇挂职心得体会
2014/09/04 职场文书
公司离职证明范本
2014/10/17 职场文书
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android