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安装mysql-python简明笔记(ubuntu环境)
Jun 25 Python
Python 操作MySQL详解及实例
Apr 30 Python
python实现简单的文字识别
Nov 27 Python
对python多线程SSH登录并发脚本详解
Feb 14 Python
Python中关于浮点数的冷知识
Sep 22 Python
Python timeit模块的使用实践
Jan 13 Python
python中提高pip install速度
Feb 14 Python
Python greenlet和gevent使用代码示例解析
Apr 01 Python
python实现从ftp上下载文件的实例方法
Jul 19 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
Sep 21 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
Jan 27 Python
Python识别花卉种类鉴定网络热门植物并自动整理分类
Apr 08 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几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表
2013/06/06 PHP
解析PHP跨站刷票的实现代码
2013/06/18 PHP
php自定义扩展名获取函数示例
2016/12/12 PHP
ThinkPHP 5.x远程命令执行漏洞复现
2019/09/23 PHP
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
利用js实现前台动态添加文本框,后台获取文本框内容(示例代码)
2013/11/25 Javascript
基于jquery实现等比缩放图片
2014/12/03 Javascript
window.onload使用指南
2015/09/13 Javascript
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
深入浅析JavaScript中的Function类型
2016/07/09 Javascript
JS实现页面跳转参数不丢失的方法
2016/11/28 Javascript
jquery实时获取时间的简单实例
2017/01/26 Javascript
详解Javascript几种跨域方式总结
2017/02/27 Javascript
基于js中this和event 的区别(详解)
2017/10/24 Javascript
Vue.directive()的用法和实例详解
2018/03/04 Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
2019/05/16 Javascript
Flutter部件内部状态管理小结之实现Vue的v-model功能
2019/06/11 Javascript
layui表单提交到后台自动封装到实体类的方法
2019/09/12 Javascript
Vue filter 过滤当前时间 实现实时更新效果
2019/12/20 Javascript
vue模块移动组件的实现示例
2020/05/20 Javascript
[01:04]DOTA2上海特锦赛现场采访 FreeAgain遭众解说围攻
2016/03/25 DOTA
Python os模块中的isfile()和isdir()函数均返回false问题解决方法
2015/02/04 Python
Django框架中数据的连锁查询和限制返回数据的方法
2015/07/17 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
2016/06/07 Python
python合并已经存在的sheet数据到新sheet的方法
2018/12/11 Python
如何使用python爬虫爬取要登陆的网站
2019/07/12 Python
使用tqdm显示Python代码执行进度功能
2019/12/08 Python
使用python批量修改XML文件中图像的depth值
2020/07/22 Python
美国购买和销售礼品卡平台:Raise
2017/01/13 全球购物
厨师岗位职责
2013/11/12 职场文书
统计专业自荐书
2014/07/06 职场文书
施工安全汇报材料
2014/08/17 职场文书
酒店爱岗敬业演讲稿
2014/09/02 职场文书
同意迁入证明模板
2014/10/26 职场文书
在容器中使用nginx搭建上传下载服务器
2022/05/11 Servers
mysql sock 文件解析及作用讲解
2022/07/15 MySQL