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中用max()方法求最大值的介绍
May 15 Python
Python 描述符(Descriptor)入门
Nov 20 Python
python如何去除字符串中不想要的字符
Jul 05 Python
python中copy()与deepcopy()的区别小结
Aug 03 Python
Python生成器generator用法示例
Aug 10 Python
python实现共轭梯度法
Jul 03 Python
python 实现手机自动拨打电话的方法(通话压力测试)
Aug 08 Python
Pytorch 实现数据集自定义读取
Jan 18 Python
解析Python 偏函数用法全方位实现
Jun 26 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
Nov 19 Python
Python基础之hashlib模块详解
May 06 Python
python 利用PyAutoGUI快速构建自动化操作脚本
May 31 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判断图片格式的七种方法小结
2013/06/03 PHP
解析php curl_setopt 函数的相关应用及介绍
2013/06/17 PHP
Laravel 6.2 中添加了可调用容器对象的方法
2019/10/22 PHP
PHP7生产环境队列Beanstalkd用法详解
2020/05/19 PHP
JavaScript中__proto__与prototype的关系深入理解
2012/12/04 Javascript
JS判断、校验MAC地址的2个实例
2014/05/05 Javascript
JS函数arguments数组获得实际传参数个数的实现方法
2016/05/28 Javascript
jquery插件autocomplete用法示例
2016/07/01 Javascript
javascript实现将数字转成千分位的方法小结【5种方式】
2016/12/11 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
2017/03/01 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
2020/04/16 Javascript
从源码看angular/material2 中 dialog模块的实现方法
2017/10/18 Javascript
js时间戳与日期格式之间相互转换
2017/12/11 Javascript
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
2020/12/10 Vue.js
[02:43]DOTA2英雄基础教程 半人马战行者
2014/01/13 DOTA
python基础教程之序列详解
2014/08/29 Python
python实现的简单RPG游戏流程实例
2015/06/28 Python
浅谈python多线程和队列管理shell程序
2015/08/04 Python
TensorFlow实现创建分类器
2018/02/06 Python
漂亮的Django Markdown富文本app插件的实现
2019/01/02 Python
Python基于opencv实现的简单画板功能示例
2019/03/04 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
Python递归调用实现数字累加的代码
2020/02/25 Python
django 取消csrf限制的实例
2020/03/13 Python
Python实现京东抢秒杀功能
2021/01/25 Python
Jack Rogers官网:美国经典的女性鞋靴品牌
2019/09/04 全球购物
工商管理毕业生推荐信
2013/12/24 职场文书
体育教师自我鉴定
2014/02/12 职场文书
人力资源总监工作说明
2014/03/03 职场文书
求职简历自我评价范例
2014/03/12 职场文书
客户付款通知书
2015/04/23 职场文书
学前教育见习总结
2015/06/23 职场文书
超市主管竞聘书
2015/09/15 职场文书
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
2021/06/23 Python
CSS元素定位之通过元素的标签或者元素的id、class属性定位详解
2022/09/23 HTML / CSS