Python Opencv实践 - 霍夫圆检测(Hough Circles)

这篇具有很好参考价值的文章主要介绍了Python Opencv实践 - 霍夫圆检测(Hough Circles)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt

img = cv.imread("../SampleImages/steelpipes.jpg")
print(img.shape)
plt.imshow(img[:,:,::-1])

#转为二值图
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
plt.imshow(gray, cmap = plt.cm.gray)

#Canny边缘检测(此步骤可以不做)
edges = cv.Canny(gray, 70, 120)
plt.imshow(edges, plt.cm.gray)

#霍夫圆检测
#cv.HoughCircles(image,method,dp,minDist[,circles[,param1[,param2[,minRadius[,maxRadius]]]]])
#image:输入图像,8bit单通道图像。
#method:检测方法,当前有cv2.HOUGH_GRADIENT和cv2.HOUGH_GRADIENT_ALT 2种方法,后者是前者的改进方法。
#dp:检测圆心的累加器精度和图像精度比的倒数,比如dp=1时累加器和输入图像有相同的分辨率,dp=2时累加器是输入图像一半大的宽高;method=cv2.HOUGH_GRADIENT_ALT时推荐设置dp=1.5。
#minDist:检测到圆心的间距,设置的越小可能检测的圆形越多,设置的越大可能会错过一些圆形的检测。
#param1:特定方法参数,和method配合;当method=cv2.HOUGH_GRADIENT或method=cv2.HOUGH_GRADIENT_ALT时,该参数是canny检测的高阈值,低阈值是该参数的一半;method=cv2.HOUGH_GRADIENT_ALT时,内部使用Scharr计算图像梯度,这个值通常要设置得更大。
#param2:特定方法参数,和method配合;当method=cv2.OUGH_GRADIENT,它表示检测阶段圆心的累加器阈值,越小就会检测到更多的圆,越大能通过检测的圆就更加精确。当method=cv2.HOUGH_GRADIENT_ALT时,该参数可以看做是圆的“完美性”度量,它越接近1算法选择的圆形形状越好,一般可以设置在0.9。如果想要更好地检测小圆,可以设置在0.85、0.8甚至更小,通过限制搜索范围[minRadius,maxRadius]可以避免出现许多假圆。
#minRadius:最小圆半径。
#maxRadius:最大圆半径,如果设置为<=0,使用最大图像尺寸;如果<0时且method=cv2.HOUGH_GRADIENT用来查找圆心而忽略半径的查找,method=cv2.HOUGH_GRADIENT_ALT不受影响,始终会去找半径。
#circles:返回的圆形的点,是一个三维数组,HOUGH_GRADIENT和HOUGH_GRADIENT_ALT 2种不同方法返回的圆形数组形式有差异
#参考资料:https://blog.csdn.net/juzicode00/article/details/122263456
circles = cv.HoughCircles(edges, cv.HOUGH_GRADIENT, 1, 200, param1=100, param2=50, minRadius=20, maxRadius=200)
circles = np.uint16(np.around(circles))

#绘制结果到原图
for c in circles[0, :]:
    #绘制圆周
    cv.circle(img, (c[0], c[1]), c[2], (0,255,0), 2)
    #绘制圆心
    cv.circle(img, (c[0], c[1]), 2, (0,0,255), 3)
plt.imshow(img[:,:,::-1])

Python Opencv实践 - 霍夫圆检测(Hough Circles),OpenCV实践-python,opencv,python,人工智能,图像处理,计算机视觉

Python Opencv实践 - 霍夫圆检测(Hough Circles),OpenCV实践-python,opencv,python,人工智能,图像处理,计算机视觉 Python Opencv实践 - 霍夫圆检测(Hough Circles),OpenCV实践-python,opencv,python,人工智能,图像处理,计算机视觉

Python Opencv实践 - 霍夫圆检测(Hough Circles),OpenCV实践-python,opencv,python,人工智能,图像处理,计算机视觉 Python Opencv实践 - 霍夫圆检测(Hough Circles),OpenCV实践-python,opencv,python,人工智能,图像处理,计算机视觉文章来源地址https://www.toymoban.com/news/detail-689409.html

到了这里,关于Python Opencv实践 - 霍夫圆检测(Hough Circles)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python Opencv实践 - Sobel边缘检测

         

    2024年02月10日
    浏览(33)
  • Python Opencv实践 - Harris角点检测

    参考资料:https://blog.csdn.net/wsp_1138886114/article/details/90415190  

    2024年02月09日
    浏览(27)
  • 【OpenCv • c++】几何检测 —— 霍夫变换 | 霍夫直线检测 | 霍夫线变化

    🚀 个人简介:CSDN「 博客新星 」TOP 10 , C/C++ 领域新星创作者 💟 作    者: 锡兰_CC ❣️ 📝 专    栏: 【OpenCV • c++】计算机视觉 🌈 若有帮助,还请 关注➕点赞➕收藏 ,不行的话我再努努力💪💪💪

    2024年02月06日
    浏览(29)
  • 【矩阵检测】Hough霍夫变换矩阵检测【含Matlab源码 3563期】

    获取代码方式1: 完整代码已上传我的资源:【矩阵检测】基于matlab Hough霍夫变换矩阵检测【含Matlab源码 3563期】 点击上面蓝色字体,直接付费下载,即可。 获取代码方式2: 付费专栏Matlab图像处理(初级版) 备注: 点击上面蓝色字体 付费专栏Matlab图像处理(初级版) ,扫

    2024年02月04日
    浏览(29)
  • Python Opencv实践 - Shi-Tomasi角点检测

    参考资料:Harris和Shi-tomasi角点检测笔记(详细推导)_harris焦点检测_亦枫Leonlew的博客-CSDN博客  cv.goodFeaturesToTrack:Shi-Tomasi角点检测-OpenCV-python_独憩的博客-CSDN博客  

    2024年02月09日
    浏览(25)
  • Python-OpenCV中的图像处理-霍夫变换

    霍夫(Hough)变换在检测各种形状的技术中非常流行,如果要检测的形状可以用数学表达式描述,就可以是使用霍夫变换检测它。即使要检测的形状存在一点破坏或者扭曲也是可以使用。 Hough直线变换,可以检测一张图像中的直线 cv2.HoughLines(image, rho, theta, threshold) return:返回值

    2024年02月13日
    浏览(36)
  • OpenCV-Python中的图像处理-霍夫变换

    霍夫(Hough)变换在检测各种形状的技术中非常流行,如果要检测的形状可以用数学表达式描述,就可以是使用霍夫变换检测它。即使要检测的形状存在一点破坏或者扭曲也是可以使用。 Hough直线变换,可以检测一张图像中的直线 cv2.HoughLines(image, rho, theta, threshold) return:返回值

    2024年02月12日
    浏览(32)
  • 13- OpenCV:霍夫检测:直线、圆检测

    目录 一、霍夫变换简介 1、霍夫变换的原理 2、霍夫变换的优点 3、霍夫变换的缺点 4、霍夫变换的应用场景 5、使用霍夫变换的步骤 二、霍夫变换—直线检测 1、霍夫直线变换介绍 2、霍夫直线变换的例子 3、相关API学习(代码例子) 三、霍夫变换—圆检测 1、霍夫圆检测原理

    2024年02月21日
    浏览(38)
  • OpenCV——霍夫变换圆检测

        HoughCircles 该函数使用霍夫变换在灰度图像中查找圆。 image :输入图像,需要为 8 位的灰度单通道图像。 circle :找到的圆的输出向量。每个向量被编码为3或4个元素的浮点型向量 ( x , y , r a d i u s ) (x, y, radius) ( x , y , r a d i u s ) 或 ( x , y , r a d i u s , v o t e s ) (x, y, radius,

    2024年02月13日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包