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中特殊函数集锦
Jul 27 Python
浅谈python import引入不同路径下的模块
Jul 11 Python
python利用OpenCV2实现人脸检测
Apr 16 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
Mar 14 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
Mar 22 Python
Python读取本地文件并解析网页元素的方法
May 21 Python
python3实现字符串的全排列的方法(无重复字符)
Jul 07 Python
pytorch: Parameter 的数据结构实例
Dec 31 Python
利用python生成照片墙的示例代码
Apr 09 Python
jupyter notebook 添加kernel permission denied的操作
Apr 21 Python
Keras实现支持masking的Flatten层代码
Jun 16 Python
scrapy头部修改的方法详解
Dec 06 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
在PHP3中实现SESSION的功能(二)
2006/10/09 PHP
用PHP程序实现支持页面后退的两种方法
2008/06/30 PHP
php 生成静态页面的办法与实现代码详细版
2010/02/15 PHP
PHP中isset()和unset()函数的用法小结
2014/03/11 PHP
PHP实现从远程下载文件的方法
2015/03/12 PHP
Laravel 5.3 学习笔记之 安装
2016/08/28 PHP
PHP 接入支付宝即时到账功能
2016/09/18 PHP
PHP第三方登录―QQ登录实现方法
2017/02/06 PHP
PHP实现用户登录的案例代码
2018/05/10 PHP
PHP实现的用户注册表单验证功能简单示例
2019/02/25 PHP
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
2011/12/08 Javascript
JS图片切换的具体方法(带缩略图版)
2013/11/12 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
Javascript中匿名函数的多种调用方式总结
2013/12/06 Javascript
浅析JavaScript中的对象类型Object
2016/05/26 Javascript
javascript中sort排序实例详解
2016/07/24 Javascript
JavaScript中ES6字符串扩展方法
2016/08/26 Javascript
js实现旋转木马效果
2017/03/17 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
2018/03/13 Javascript
jQuery实现数字华容道小游戏(实例代码)
2020/01/16 jQuery
vue或react项目生产环境去掉console.log的操作
2020/09/02 Javascript
js面向对象方式实现拖拽效果
2021/03/03 Javascript
探究python中open函数的使用
2016/03/01 Python
浅析python3字符串格式化format()函数的简单用法
2018/12/07 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
Python绘图Matplotlib之坐标轴及刻度总结
2019/06/28 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
Tensorflow分批量读取数据教程
2020/02/07 Python
python ssh 执行shell命令的示例
2020/09/29 Python
最新远光软件笔试题面试题内容
2013/11/08 面试题
护士节演讲稿开场白
2014/08/25 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
毛主席纪念堂观后感
2015/06/17 职场文书
人代会简报
2015/07/21 职场文书
三十年再续同学情倡议书
2019/11/27 职场文书
斗罗大陆八大特殊魂兽,龙族始祖排榜首,第五最残忍(翠魔鸟)
2022/03/18 国漫