opencv-Hough 圆环变换

2023-11-23 11:52
文章标签 opencv 变换 hough 圆环

本文主要是介绍opencv-Hough 圆环变换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Hough 圆环变换(Hough Circle Transform)是一种用于在图像中检测圆环的技术。与 Hough 直线变换类似,它通过在参数空间中表示图像中的圆环,将圆环检测问题转换为参数空间的累加问题。OpenCV 提供了 cv2.HoughCircles() 函数来执行 Hough 圆环变换。

cv2.HoughCircles()

circles = cv2.HoughCircles(image, method, dp, minDist, param1, param2, minRadius=0, maxRadius=0)

参数说明:

  • image: 输入的灰度图像
  • method: 圆环检测的方法。目前 OpenCV 中只支持 cv2.HOUGH_GRADIENT,表示使用基于梯度的检测方法。
  • dp: 累加器分辨率与图像分辨率的倒数比。如果设置为1,累加器的分辨率与图像分辨率相同;如果大于1,累加器的分辨率小于图像分辨率。
  • minDist: 检测到的圆之间的最小距离。
  • param1: Canny 边缘检测的高阈值。
  • param2: 圆心累加器的阈值。只有当某个圆的累加值高于该阈值时,该圆才会被检测到。
  • minRadius: 检测的圆的最小半径。
  • maxRadius: 检测的圆的最大半径。

返回值:

  • circles: 检测到的圆的参数。每行表示一个检测到的圆,包括圆心的坐标和半径。

以下是一个简单的示例,演示如何使用 Hough 圆环变换检测图像中的圆环:

import cv2
import numpy as np
import matplotlib.pyplot as plt# 读取图像并转换为灰度
img = cv2.imread( r"C:\Users\mzd\Desktop\opencv\3.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 高斯模糊
blurred = cv2.GaussianBlur(gray, (9, 9), 2)# 执行 Hough 圆环变换
circles = cv2.HoughCircles(blurred, cv2.HOUGH_GRADIENT, dp=1, minDist=50, param1=50, param2=30, minRadius=10, maxRadius=100)# 将检测到的圆心坐标和半径转换为整数
circles = np.uint16(np.around(circles))# 在原图上绘制检测到的圆环
for i in circles[0, :]:cv2.circle(img, (i[0], i[1]), i[2], (0, 255, 0), 2)  # 绘制圆环cv2.circle(img, (i[0], i[1]), 2, (0, 0, 255), 3)  # 绘制圆心# 显示原图和检测到的圆环
plt.figure(figsize=(10, 5))plt.subplot(121), plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.title('Original Image with Circles'), plt.axis('off')plt.subplot(122), plt.imshow(blurred, cmap='gray')
plt.title('Blurred Image'), plt.axis('off')plt.show()

在这里插入图片描述

在这里插入图片描述

在这个示例中,我们首先读取了一幅图像,将其转换为灰度图像,然后对图像进行高斯模糊。接着,使用 cv2.HoughCircles() 函数进行 Hough 圆环变换,并在原图上绘制检测到的圆环。最后,通过 Matplotlib 显示原图和模糊图像。

这篇关于opencv-Hough 圆环变换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/417766

相关文章

在PyCharm中安装PyTorch、torchvision和OpenCV详解

《在PyCharm中安装PyTorch、torchvision和OpenCV详解》:本文主要介绍在PyCharm中安装PyTorch、torchvision和OpenCV方式,具有很好的参考价值,... 目录PyCharm安装PyTorch、torchvision和OpenCV安装python安装PyTor

openCV中KNN算法的实现

《openCV中KNN算法的实现》KNN算法是一种简单且常用的分类算法,本文主要介绍了openCV中KNN算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录KNN算法流程使用OpenCV实现KNNOpenCV 是一个开源的跨平台计算机视觉库,它提供了各

OpenCV图像形态学的实现

《OpenCV图像形态学的实现》本文主要介绍了OpenCV图像形态学的实现,包括腐蚀、膨胀、开运算、闭运算、梯度运算、顶帽运算和黑帽运算,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起... 目录一、图像形态学简介二、腐蚀(Erosion)1. 原理2. OpenCV 实现三、膨胀China编程(

C++变换迭代器使用方法小结

《C++变换迭代器使用方法小结》本文主要介绍了C++变换迭代器使用方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、源码2、代码解析代码解析:transform_iterator1. transform_iterat

opencv图像处理之指纹验证的实现

《opencv图像处理之指纹验证的实现》本文主要介绍了opencv图像处理之指纹验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、简介二、具体案例实现1. 图像显示函数2. 指纹验证函数3. 主函数4、运行结果三、总结一、

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

opencv实现像素统计的示例代码

《opencv实现像素统计的示例代码》本文介绍了OpenCV中统计图像像素信息的常用方法和函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 统计像素值的基本信息2. 统计像素值的直方图3. 统计像素值的总和4. 统计非零像素的数量

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

opencv 滚动条

参数介绍:createTrackbar( trackbarname , "hello" , &alpha_slider ,alpha_max ,  on_trackbar )  ;在标签中显示的文字(提示滑动条的用途) TrackbarName创建的滑动条要放置窗体的名字 “hello”滑动条的取值范围从 0 到 alpha_max (最小值只能为 zero).滑动后的值存放在