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分割和拼接字符串
Nov 01 Python
Python的gevent框架的入门教程
Apr 29 Python
解决Python传递中文参数的问题
Aug 04 Python
Python 含参构造函数实例详解
May 25 Python
PyCharm在新窗口打开项目的方法
Jan 17 Python
python实现定时发送qq消息
Jan 18 Python
解决Pycharm后台indexing导致不能run的问题
Jun 27 Python
python爬虫之爬取百度音乐的实现方法
Aug 24 Python
python实现高斯判别分析算法的例子
Dec 09 Python
详解Python Opencv和PIL读取图像文件的差别
Dec 27 Python
Django Haystack 全文检索与关键词高亮的实现
Feb 17 Python
Python实现爬取并分析电商评论
Jun 19 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入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
2011/07/14 PHP
基于PHP 面向对象之成员方法详解
2013/05/04 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
彪哥1.1(智能表格)提供下载
2006/09/07 Javascript
JSON.stringify 语法实例讲解
2012/03/14 Javascript
jQuery 如何先创建、再修改、后添加DOM元素
2014/05/20 Javascript
初识Node.js
2014/09/03 Javascript
javascript实现复选框超过限制即弹出警告框的方法
2015/02/25 Javascript
JS实现兼容各浏览器解析XML文档数据的方法
2015/06/01 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
基于insertBefore制作简单的循环插空效果
2015/09/21 Javascript
JS原型链 详解及示例代码
2016/09/06 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
2016/12/30 Javascript
jquery+css实现简单的图片轮播效果
2017/08/07 jQuery
Vue2.0权限树组件实现代码
2017/08/29 Javascript
vue 实现 ios 原生picker 效果及实现思路解析
2017/12/06 Javascript
vue-cli 如何打包上线的方法示例
2018/05/08 Javascript
详解vue 不同环境配置不同的打包命令
2019/04/07 Javascript
vue实现标签云效果的方法详解
2019/08/28 Javascript
JS中封装axios来管控api的2种方式
2019/09/11 Javascript
JS面向对象实现飞机大战
2020/08/26 Javascript
python计算圆周长、面积、球体体积并画出圆
2014/04/08 Python
python字符串,数值计算
2016/10/05 Python
python实现任意位置文件分割的实例
2018/12/14 Python
numpy.ndarray 实现对特定行或列取值
2019/12/05 Python
ipython jupyter notebook中显示图像和数学公式实例
2020/04/15 Python
python时间序列数据转为timestamp格式的方法
2020/08/03 Python
CSS3毛玻璃效果(blur)有白边问题的解决方法
2016/11/15 HTML / CSS
纯HTML5+CSS3制作生日蛋糕代码
2016/11/16 HTML / CSS
家乐福巴西网上超市:Carrefour巴西
2016/10/31 全球购物
CNC数控操作工岗位职责
2013/11/19 职场文书
致1500米运动员广播稿
2014/02/07 职场文书
一篇带你入门Java垃圾回收器
2021/06/16 Java/Android
介绍一下28个JS常用数组方法
2022/05/06 Javascript
CentOS7安装MySQL8的超级详细教程(无坑!)
2022/06/10 Servers