详解利用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实现文本文件合并
Dec 29 Python
小小聊天室Python代码实现
Aug 17 Python
python基于物品协同过滤算法实现代码
May 31 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
Jul 12 Python
python 实现分页显示从es中获取的数据方法
Dec 26 Python
Python实现数据结构线性链表(单链表)算法示例
May 04 Python
python3.x提取中文的正则表达式示例代码
Jul 23 Python
opencv-python 提取sift特征并匹配的实例
Dec 09 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
Mar 23 Python
Python 解析库json及jsonpath pickle的实现
Aug 17 Python
详解基于python的全局与局部序列比对的实现(DNA)
Oct 07 Python
python 爬取英雄联盟皮肤并下载的示例
Dec 04 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
PHP+MYSQL 出现乱码的解决方法
2008/08/08 PHP
PHP读取大文件的类SplFileObject使用介绍
2014/04/09 PHP
基于php实现随机合并数组并排序(原排序)
2015/11/26 PHP
thinkPHP3.2简单实现文件上传的方法
2016/05/16 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
2019/04/04 PHP
javascript优先加载笔记代码
2008/09/30 Javascript
javascript textContent与innerText的异同分析
2010/10/22 Javascript
jquery 滚动条事件简单实例
2013/07/12 Javascript
解决jquery1.9不支持browser对象的问题
2013/11/13 Javascript
nodejs npm install全局安装和本地安装的区别
2014/06/05 NodeJs
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
JS实现将数字金额转换为大写人民币汉字的方法
2016/08/02 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
2016/12/17 Javascript
JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】
2017/02/14 Javascript
js转换对象为xml
2017/02/17 Javascript
react.js CMS 删除功能的实现方法
2017/04/17 Javascript
ES6中Array.includes()函数的用法
2017/09/20 Javascript
three.js实现3D影院的原理的代码分析
2017/12/18 Javascript
python 类详解及简单实例
2017/03/24 Python
Python优先队列实现方法示例
2017/09/21 Python
python进行两个表格对比的方法
2018/06/27 Python
详解Python 4.0 预计推出的新功能
2019/07/26 Python
python的命名规则知识点总结
2019/10/04 Python
Pytorch实现基于CharRNN的文本分类与生成示例
2020/01/08 Python
Python实现中英文全文搜索的示例
2020/12/04 Python
纯CSS3实现带动画效果导航菜单无需js
2013/09/27 HTML / CSS
HTML5 canvas基本绘图之文字渲染
2016/06/27 HTML / CSS
L’AGENCE官网:加州女装品牌
2018/06/03 全球购物
7 For All Mankind官网:美国加州洛杉矶的高级牛仔服装品牌
2018/12/20 全球购物
奢华时尚的创新平台:Baltini
2020/10/03 全球购物
小升初自荐信范文
2015/03/05 职场文书
有关三国演义的读书笔记
2015/06/25 职场文书
SQL Server中常用截取字符串函数介绍
2022/03/16 SQL Server
世界十大动漫制作公司排行榜,迪士尼上榜,第二是美国代表性文化符
2022/03/18 欧美动漫
微信小程序APP页面的之间的相互传递参数以及自定义组件
2022/04/19 Javascript