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通过imaplib模块读取gmail里邮件的方法
May 08 Python
举例区分Python中的浅复制与深复制
Jul 02 Python
在Django的session中使用User对象的方法
Jul 23 Python
python九九乘法表的实例
Sep 26 Python
Python callable()函数用法实例分析
Mar 17 Python
Python中的Numpy矩阵操作
Aug 12 Python
python删除字符串中指定字符的方法
Aug 13 Python
virtualenv 指定 python 解释器的版本方法
Oct 25 Python
Python实现对特定列表进行从小到大排序操作示例
Feb 11 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
Jan 25 Python
Python发送手机动态验证码代码实例
Feb 28 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
Mar 28 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+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
2016/07/07 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
Javascript 学习书 推荐
2009/06/13 Javascript
基于jQuery的消息提示插件 DivAlert之旅(二)
2010/04/01 Javascript
JS获取select的value和text值的简单实例
2014/02/26 Javascript
js 采用delete实现继承示例代码
2014/05/20 Javascript
javascript转换日期字符串为Date日期对象的方法
2015/02/13 Javascript
Javascript writable特性介绍
2015/02/27 Javascript
Angular.js如何从PHP读取后台数据
2016/03/24 Javascript
动态加载js、css的实例代码
2016/05/26 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
js实现简单的获取验证码按钮效果
2017/03/03 Javascript
基于jquery实现多级菜单效果
2017/07/25 jQuery
JS实现方形抽奖效果
2018/08/27 Javascript
Django查找网站项目根目录和对正则表达式的支持
2015/07/15 Python
Python选课系统开发程序
2016/09/02 Python
Django添加sitemap的方法示例
2018/08/06 Python
详解Python发送email的三种方式
2018/10/18 Python
python调用c++ ctype list传数组或者返回数组的方法
2019/02/13 Python
Python3.5装饰器原理及应用实例详解
2019/04/30 Python
python实现网站用户名密码自动登录功能
2019/08/09 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
python 实现目录复制的三种小结
2019/12/04 Python
python @propert装饰器使用方法原理解析
2019/12/25 Python
Python求解排列中的逆序数个数实例
2020/05/03 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
美国鞋类购物网站:Shiekh Shoes
2016/08/21 全球购物
临床医学专业学生的自我评价分享
2013/11/21 职场文书
文明演讲稿范文
2014/05/12 职场文书
分公司总经理岗位职责
2014/07/30 职场文书
世界地球日活动总结
2015/02/09 职场文书
捐款仪式主持词
2015/07/04 职场文书
小学主题班会教案
2015/08/17 职场文书
《失物招领》教学反思
2016/02/20 职场文书