OpenCV中的HoughLines函数和HoughLinesP函数到底有什么区别?

一、简述

        基于OpenCV进行直线检测可以使用HoughLines和HoughLinesP函数完成的。这两个函数之间的唯一区别在于,第一个函数使用标准霍夫变换,第二个函数使用概率霍夫变换(因此名称为 P)。概率版本之所以如此,是因为它仅分析点的子集并估计这些点都属于同一条线的概率。此实现是标准霍夫变换的优化版本,在这种情况下,它的计算强度较小且执行速度更快。

        霍夫变换的原始形式旨在识别直线。后来这项技术后来被推广到检测其他形状,如圆形、椭圆形等。

        要使用霍夫线变换,图像首先需要二值化。通常是首先对图像进行灰度化,然后检测边缘。然后可以将这种边缘掩模获取到霍夫线方法,该方法应该输出在图像上找到的一组直线。

二、直线表示

        直线可以用两个参数表示。最简单且使用最广泛的参数对是(a,b),其对应于斜率和截距。该线被描述为:y = ax + b。

        我们还可以使用极坐标系中的(ρ, θ)对来明确地描述这条线。

OpenCV中的HoughLines函数和HoughLinesP函数到底有什么区别?_第1张图片

        对于给定的线,我们可以确定具体的ρθ。然后,对于属于该线的每个x , y点,满足以下方程:ρ = x cos(θ) + y sin(θ

你可能感兴趣的:(数字图像处理从入门到精通,OpenCV从入门到精通,深度学习从入门到精通,opencv,人工智能,计算机视觉,霍夫变换,数字图像处理)