一、简述
基于OpenCV进行直线检测可以使用HoughLines和HoughLinesP函数完成的。这两个函数之间的唯一区别在于,第一个函数使用标准霍夫变换,第二个函数使用概率霍夫变换(因此名称为 P)。概率版本之所以如此,是因为它仅分析点的子集并估计这些点都属于同一条线的概率。此实现是标准霍夫变换的优化版本,在这种情况下,它的计算强度较小且执行速度更快。
霍夫变换的原始形式旨在识别直线。后来这项技术后来被推广到检测其他形状,如圆形、椭圆形等。
要使用霍夫线变换,图像首先需要二值化。通常是首先对图像进行灰度化,然后检测边缘。然后可以将这种边缘掩模获取到霍夫线方法,该方法应该输出在图像上找到的一组直线。
二、直线表示
直线可以用两个参数表示。最简单且使用最广泛的参数对是(a,b),其对应于斜率和截距。该线被描述为:y = ax + b。
我们还可以使用极坐标系中的(ρ, θ)对来明确地描述这条线。
对于给定的线,我们可以确定具体的ρ和θ。然后,对于属于该线的每个x , y点,满足以下方程:ρ = x cos(θ) + y sin(θ</