OpenCV——圆检测
使用cv2.HoughCircles()函数进行圆检测。
函数原型:cv2.HoughCircles(image,method,dp,minDist[, circles[,param1, param2[,minRadius[,maxRadius]]]]])
参数设置:
image:源图像;
method:cv2.HOUGH_GRADIENT 也就是霍夫圆检测,梯度法;
dp:计数器的分辨率图像像素分辨率与参数空间分辨率的比值,dp=1,则参数空间与图像像素空间(分辨率)一样大,dp=2,参数空间的分辨率只有像素空间的一半大;
minDist: 圆心之间最小距离,如果距离太小,会产生很多相交的圆,如果距离太大,则会漏掉正确的圆;
param1:canny检测的双阈值中的高阈值,低阈值是它的一半;
param2:基于圆心的最小投票数;
minRadius:需要检测圆的最小半径;
maxRadius:需要检测圆的最大半径。
源代码
import cv2
import numpy as npplanets = cv2.imread('planet_glow.jpg')
gray_img = cv2.cvtColor(planets, cv2.COLOR_BGR2GRAY)
img = cv2.medianBlur(gray_img, 5)circles = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, 1, 120, param1=100, param2=30, minRadius=0, maxRadius=0)circles = np.uint16(np.around(circles))for i in circles[0, :]:# draw the outer circlecv2.circle(planets, (i[0], i[1]), i[2], (0, 255, 0), 2)# draw the center of the circlecv2.circle(planets, (i[0], i[1]), 2, (0, 0, 255), 3)cv2.imshow("HoughCirlces", planets)
cv2.waitKey()
cv2.destroyAllWindows()
- planet_glow.jpg
- HoughCirlces
想了解更多关于数字图像处理:数字图像处理专栏
OpenCV——圆检测相关推荐
- OpenCV+python:圆检测
1,圆检测基本原理 对霍夫变换有了这样一种理解-----实际上就是坐标变换,是一种数学上的变换,然后再转换到参数坐标系进行讨论,最终确定待检测圆(或者其他形状)的数学方程.在极坐标系下,圆的数学表达式 ...
- 使用Python,OpenCV和Hough圆检测图像中的圆
使用Python,OpenCV和Hough圆检测图像中的圆 1. 效果图 2. cv2.HoughCircles(image, method, dp, minDist) 3. 源码 参考 前几篇博客中 ...
- OpenCV(十八)霍夫变换(直线、线段与圆检测)
目录 一.基础理论 1.作用: 2.定义 3.原理 二.直线检测 1.基础理论 1.原理 2.过程 2.HoughLines函数(直线检测) 3.HoughLinesP函数(线段检测) 三.圆检测 1 ...
- 利用霍夫梯度法进行圆检测的原理概要及OpenCV代码实现
图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 霍夫圆变换的基本原理与霍夫线变换原理类似,对直线 ...
- OpenCV 霍夫圆检测
圆的表示式是: 其中aa和bb表示圆心坐标,rr表示圆半径,因此标准的霍夫圆检测就是在这三个参数组成的三维空间累加器上进行圆形检测,此时效率就会很低,所以OpenCV中使用霍夫梯度法进行圆形的检测. ...
- Python+OpenCV图像处理(十五)—— 圆检测
简介: 1.霍夫圆变换的基本原理和霍夫线变换原理类似,只是点对应的二维极径.极角空间被三维的圆心和半径空间取代.在标准霍夫圆变换中,原图像的边缘图像的任意点对应的经过这个点的所有可能圆在三维空间用圆心 ...
- opencv进阶学习笔记11:cannny边缘检测,直线检测,圆检测
基础版笔记传送门 python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) cannny边缘检测 基础版边 ...
- OpenCV中霍夫圆检测
OpenCV中霍夫圆检测 在直线检测中,变换后在r−θr-\thetar−θ空间内曲线交点,然后根据阈值来得到直线.在圆中需要有三个变量圆心坐标和半径,因此变换后的空间在三维空间,根据三维空间中的曲线 ...
- 【opencv学习】【hough圆检测】
import cv2 import numpy as np# 圆的检测原理 # 霍夫梯度法:先确定圆心,再确定半径 # 把原图做一次 Canny 边缘检测,得到边缘检测的二值图. # 圆的边缘点切线的 ...
最新文章
- Ubuntu系统安装stardict(星际译王)词典
- latex插入表格_如何将word表格变成LaTeX代码?
- js get/set Cookie
- 前端学习(1687):前端系列javascript基础面试前言
- mysql操作常用技巧
- PHPCMS资源网站源码软件源码下载站网站源码
- 跨系统服务器data,oracle 新增pdb环境,并通过database link实现跨服务器在线克隆
- NOIP模拟题——计数
- 最不靠谱CEO,一句话让公司损失上千亿元
- mysql .myi权限_mysql之引擎、Explain、权限详解
- 2016年计算机一级excel试题及答案,2016年计算机一级试题加答案
- 微信公众号开发清理缓存
- C语言abs和labs函数详解和示例
- html实战:用html编写游戏
- 雷鸣的游戏人生(六) --- 如何开始学习编程?
- Python scrapy爬虫爬取伯乐在线全部文章,并写入数据库
- 支持 ScrollView ViewGroup ListView RecyclerView NestedScrollView长截图
- iOS中 UISearchController 搜索栏 UI技术分享
- 利用 git status -uno 找回不小心删除了些啥
- 基于ATtiny85轻松制作一款智能手表