• 007 OpenCV霍夫变换


    目录

    一、环境

    二、霍夫变换原理

    三、代码


    一、环境

    本文使用环境为:

    • Windows10
    • Python 3.9.17
    • opencv-python 4.8.0.74

    二、霍夫变换原理

    OpenCV中的霍夫变换是一种用于检测图像中直线和圆的算法。它基于图像中像素的分布情况,通过统计像素点之间的相互关系来识别出直线或圆的位置和参数。

    霍夫变换的原理是利用图像中的边缘信息来检测直线或圆。在图像中,边缘信息通常表现为灰度值的变化,即相邻像素之间的灰度值差异较大。因此,霍夫变换首先需要对图像进行边缘检测,提取出边缘信息。常用的边缘检测方法有Sobel算子、Canny算子等。

    对于直线检测,霍夫变换的基本思想是将图像划分为若干个小区域,然后计算每个小区域内的像素点与该区域内某条直线的关系。具体来说,对于每个小区域,霍夫变换会找到一条最佳拟合该区域内所有像素点的直线,这条直线被称为该区域的“主成分”。接下来,霍夫变换会计算每个小区域内的像素点到其主成分的距离,并统计距离小于某个阈值的像素点的数量。最后,霍夫变换会根据距离和数量的关系来确定图像中的直线位置和参数。

    对于圆检测,霍夫变换的基本思想是将图像划分为若干个小区域,然后计算每个小区域内的像素点与该区域内某条圆的关系。具体来说,对于每个小区域,霍夫变换会找到一条最佳拟合该区域内所有像素点的圆,这个圆被称为该区域的“主圆”。接下来,霍夫变换会计算每个小区域内的像素点到其主圆的距离,并统计距离小于某个阈值的像素点的数量。最后,霍夫变换会根据距离和数量的关系来确定图像中的圆心位置和半径。

    需要注意的是,霍夫变换只能检测图像中的直线或圆的位置和参数,而不能直接得到它们的具体形状。因此,在使用霍夫变换时,需要根据具体情况选择合适的参数和方法来提高检测的准确性和鲁棒性。

    总之,霍夫变换是一种非常有用的图像处理技术,它可以帮助我们快速准确地检测图像中的直线和圆。在实际应用中,霍夫变换被广泛应用于计算机视觉、模式识别、机器视觉等领域。

    三、代码

    输入图像如下图,利用霍夫变换检测如图线段:

    完整代码:

    1. import cv2 as cv
    2. import numpy as np
    3. # 读图
    4. img = cv.imread(cv.samples.findFile('data/sudoku.png'))
    5. # 灰度化
    6. gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
    7. # 提取canny边缘
    8. edges = cv.Canny(gray,50,150,apertureSize = 3)
    9. # 霍夫变换
    10. lines = cv.HoughLines(edges,1,np.pi/180,200)
    11. for line in lines:
    12. rho,theta = line[0]
    13. a = np.cos(theta)
    14. b = np.sin(theta)
    15. x0 = a*rho
    16. y0 = b*rho
    17. x1 = int(x0 + 1000*(-b))
    18. y1 = int(y0 + 1000*(a))
    19. x2 = int(x0 - 1000*(-b))
    20. y2 = int(y0 - 1000*(a))
    21. # 画线
    22. cv.line(img,(x1,y1),(x2,y2),(0,0,255),2)
    23. cv.imwrite('houghlines3.jpg',img)

  • 相关阅读:
    Mac 中 MySQL 的安装与卸载
    数据可视化?这些平台能处
    【具身智能评估2】具身视觉语言规划(EVLP)数据集基准汇总
    三星电脑文件夹误删了怎么办?恢复方案在此
    Rust嵌入式编程---动态内存分配器(Vec,String等)
    springcloud
    MySQL数据库中SQL命令语句高级使用
    Windows内核--RtlCopyUnicodeString和RtlEqualUnicodeString IRQL不一样(3.2)
    MySQL高级篇06【InnoDB数据存储结构】
    python简易定时调度
  • 原文地址:https://blog.csdn.net/m0_72734364/article/details/134523344