详解利用python+opencv识别图片中的圆形(霍夫变换)


Posted in Python onJuly 01, 2019

在图片中识别足球

先补充下霍夫圆变换的几个参数知识:

  1. dp,用来检测圆心的累加器图像的分辨率于输入图像之比的倒数,且此参数允许创建一个比输入图像分辨率低的累加器。上述文字不好理解的话,来看例子吧。例如,如果dp= 1时,累加器和输入图像具有相同的分辨率。如果dp=2,累加器便有输入图像一半那么大的宽度和高度。
  2. minDist,为霍夫变换检测到的圆的圆心之间的最小距离,即让我们的算法能明显区分的两个不同圆之间的最小距离。这个参数如果太小的话,多个相邻的圆可能被错误地检测成了一个重合的圆。反之,这个参数设置太大的话,某些圆就不能被检测出来了。
  3. param1,有默认值100。它是method设置的检测方法的对应的参数。对当前唯一的方法霍夫梯度法,它表示传递给canny边缘检测算子的高阈值,而低阈值为高阈值的一半。
  4. param2,也有默认值100。它是method设置的检测方法的对应的参数。对当前唯一的方法霍夫梯度法,它表示在检测阶段圆心的累加器阈值。它越小的话,就可以检测到更多根本不存在的圆,而它越大的话,能通过检测的圆就更加接近完美的圆形了。
  5. minRadius,默认值0,表示圆半径的最小值。
  6. 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冒泡排序算法的实现代码
Nov 21 Python
python编写暴力破解FTP密码小工具
Nov 19 Python
浅谈pandas中DataFrame关于显示值省略的解决方法
Apr 08 Python
python递归函数绘制分形树的方法
Jun 22 Python
Python 从列表中取值和取索引的方法
Dec 25 Python
python保存字典和读取字典的实例代码
Jul 07 Python
pygame库实现俄罗斯方块小游戏
Oct 29 Python
Python内置方法实现字符串的秘钥加解密(推荐)
Dec 09 Python
基于pytorch 预训练的词向量用法详解
Jan 06 Python
jupyter notebook 多行输出实例
Apr 09 Python
使用Python实现将多表分批次从数据库导出到Excel
May 15 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
Nov 01 Python
在python里面运用多继承方法详解
Jul 01 #Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
Jul 01 #Python
用python打印1~20的整数实例讲解
Jul 01 #Python
python sklearn库实现简单逻辑回归的实例代码
Jul 01 #Python
python实现列表的排序方法分享
Jul 01 #Python
Apache,wsgi,django 程序部署配置方法详解
Jul 01 #Python
Python中字符串List按照长度排序
Jul 01 #Python
You might like
留言板翻页的实现详解
2006/10/09 PHP
我的论坛源代码(五)
2006/10/09 PHP
适合PHP初学者阅读的4本经典书籍
2016/09/23 PHP
Redis使用Eval多个键值自增的操作实例
2016/11/04 PHP
网页里控制图片大小的相关代码
2006/06/25 Javascript
图片上传即时显示缩略图的js代码
2009/05/27 Javascript
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
js中判断文本框是否为空的两种方法
2011/07/31 Javascript
StringTemplate遇见jQuery冲突的解决方法
2011/09/22 Javascript
javascript实现存储hmtl字符串示例
2014/04/25 Javascript
javascript 原型链维护和继承详解
2014/11/26 Javascript
浅谈jquery中delegate()与live()
2015/06/22 Javascript
React-Native 组件之 Modal的使用详解
2017/08/08 Javascript
JavaScript如何操作css
2020/10/24 Javascript
[01:14:31]Secret vs VG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
python笔记:mysql、redis操作方法
2017/06/28 Python
详解python中executemany和序列的使用方法
2017/08/12 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
对python当中不在本路径的py文件的引用详解
2018/12/15 Python
python实现字符串加密成纯数字
2019/03/19 Python
python requests模拟登陆github的实现方法
2019/12/26 Python
Python 支持向量机分类器的实现
2020/01/15 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
python中sklearn的pipeline模块实例详解
2020/05/21 Python
利用Bootstrap实现漂亮简洁的CSS3价格表实例源码
2017/03/02 HTML / CSS
爱尔兰电脑、家电和家具购物网站:Buy It Direct
2019/07/09 全球购物
体育老师的教学自我评价分享
2013/11/19 职场文书
动员大会主持词
2014/03/20 职场文书
理想点亮人生演讲稿
2014/05/21 职场文书
土地租赁意向书
2014/07/30 职场文书
2014国庆节演讲稿:祖国在我心中(400字)
2014/09/25 职场文书
2015应届毕业生求职信范文
2015/03/20 职场文书
《唯一的听众》教学反思
2016/02/18 职场文书
一文搞懂python异常处理、模块与包
2021/06/26 Python
Python道路车道线检测的实现
2021/06/27 Python
阿里云k8s服务升级时502错误 springboot项目应用
2022/04/09 Servers