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使用any判断一个对象是否为空的方法
Nov 19 Python
Python简单实现socket信息发送与监听功能示例
Jan 03 Python
python调用系统ffmpeg实现视频截图、http发送
Mar 06 Python
pyqt5 获取显示器的分辨率的方法
Jun 18 Python
使用Tensorboard工具查看Loss损失率
Feb 15 Python
Python根据指定文件生成XML的方法
Jun 29 Python
使用PyWeChatSpy自动回复微信拍一拍功能的实现代码
Jul 02 Python
matplotlib教程——强大的python作图工具库
Oct 15 Python
python如何控制进程或者线程的个数
Oct 16 Python
Django执行源生mysql语句实现过程解析
Nov 12 Python
python-for x in range的用法(注意要点、细节)
May 10 Python
python接口测试返回数据为字典取值方式
Feb 12 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 301转向实现代码
2008/09/18 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
php断点续传之文件分割合并详解
2016/12/13 PHP
PHP实现判断数组是一维、二维或几维的方法
2017/02/06 PHP
解决laravel5中auth用户登录其他页面获取不到登录信息的问题
2019/10/08 PHP
js left,right,mid函数
2008/06/10 Javascript
javascript Object与Function使用
2010/01/11 Javascript
Ajax 数据请求的简单分析
2011/04/05 Javascript
js有关元素内容操作小结
2011/12/20 Javascript
文本框获得焦点和失去焦点的判断代码
2012/03/18 Javascript
基于jQuery的JavaScript模版引擎JsRender使用指南
2014/12/29 Javascript
jQuery中has()方法用法实例
2015/01/06 Javascript
js选项卡的实现方法
2015/02/09 Javascript
JavaScript中的small()方法使用详解
2015/06/08 Javascript
详解Angualr 组件间通信
2017/01/21 Javascript
vue的Virtual Dom实现snabbdom解密
2017/05/03 Javascript
详解windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
2017/06/17 Javascript
浅谈React深度编程之受控组件与非受控组件
2017/12/26 Javascript
前后端如何实现登录token拦截校验详解
2018/09/03 Javascript
详解vue几种主动刷新的方法总结
2019/02/19 Javascript
解决基于 keep-alive 的后台多级路由缓存问题
2020/12/23 Javascript
[06:36]吞吞映像top1
2014/06/20 DOTA
[59:30]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
sublime text 3配置使用python操作方法
2017/06/11 Python
python爬虫获取淘宝天猫商品详细参数
2020/06/23 Python
Python telnet登陆功能实现代码
2020/04/16 Python
python如何安装下载后的模块
2020/07/03 Python
国贸专业个人求职信范文
2014/01/08 职场文书
优秀学生获奖感言
2014/02/15 职场文书
安全施工责任书
2014/08/25 职场文书
《蚂蚁和蝈蝈》教学反思
2016/02/22 职场文书
2016大学先进团支部事迹材料
2016/03/01 职场文书
创业者如何撰写出一份打动投资人的商业计划书?
2019/07/02 职场文书
如何撰写促销方案?
2019/07/05 职场文书
Golang中interface{}转为数组的操作
2021/04/30 Golang