详解利用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多线程http下载实现示例
Dec 30 Python
Python兔子毒药问题实例分析
Mar 05 Python
Python最长公共子串算法实例
Mar 07 Python
Python实现的建造者模式示例
Aug 06 Python
python批量修改文件夹及其子文件夹下的文件内容
Mar 15 Python
Python提取PDF内容的方法(文本、图像、线条等)
Sep 25 Python
Python协程操作之gevent(yield阻塞,greenlet),协程实现多任务(有规律的交替协作执行)用法详解
Oct 14 Python
Python自动化完成tb喵币任务的操作方法
Oct 30 Python
python3实现绘制二维点图
Dec 04 Python
TensorFlow命名空间和TensorBoard图节点实例
Jan 23 Python
Python和Anaconda和Pycharm安装教程图文详解
Feb 04 Python
python xlwt模块的使用解析
Apr 13 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的FTP学习(四)
2006/10/09 PHP
php下过滤html代码的函数 提高程序安全性
2010/03/02 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
2015/07/31 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
2015/12/18 PHP
php 无限级分类 获取顶级分类ID
2016/03/13 PHP
Yii视图操作之自定义分页实现方法
2016/07/14 PHP
PHP中overload与override的区别
2017/02/13 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
同一个网页中实现多个JavaScript特效的方法
2015/02/02 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
2016/04/20 Javascript
Bootstrap实现导航栏的2种方式
2016/11/28 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
2017/03/07 Javascript
JavaScript表单验证实现代码
2017/05/22 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
JS制作简易计算器的实例代码
2020/07/04 Javascript
JavaScript中的Proxy对象
2020/11/27 Javascript
Python中字符串对齐方法介绍
2015/05/21 Python
Python脚本实现自动将数据库备份到 Dropbox
2017/02/06 Python
python中学习K-Means和图片压缩
2017/11/20 Python
Python实现线程状态监测简单示例
2018/03/28 Python
使用PyQt5实现图片查看器的示例代码
2020/04/21 Python
Python SQLAlchemy库的使用方法
2020/10/13 Python
CSS3动画之利用requestAnimationFrame触发重新播放功能
2019/09/11 HTML / CSS
英国顶尖手表珠宝品牌独家授权经销商:HS Johnson
2020/10/28 全球购物
武汉东之林科技有限公司机试
2013/09/17 面试题
运动会广播稿60字
2014/01/15 职场文书
硕士生工作推荐信
2014/03/07 职场文书
购房协议书
2014/04/11 职场文书
献爱心捐款倡议书
2014/05/14 职场文书
学校教师读书活动总结
2014/07/08 职场文书
银行竞聘上岗演讲稿
2014/09/12 职场文书
企业贷款委托书格式
2014/09/12 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
个人求职意向书
2015/05/11 职场文书
2016年秋季趣味运动会开幕词
2016/03/04 职场文书
员工升职自我评价
2019/03/26 职场文书