我想检测一条线并提取它的两个终点。常用的方法是使用霍夫变换。幸运的是OpenCV中有一个sample,因此我画了一条线,其两个终点p1(100,200), p2(400,200)
。我认为上述方法只会提供这些观点。我的样本图像是为什么hough变换检测两条线,而只有一条线
霍夫变换为我提供了两个图像其是
对于坎尼滤波器,
在代码中,似乎有两行被检测到。这就解释了为什么红线更粗,表明有两条线而不是一条线。当我打印出行数时,它显示出我如下两种:
lines.size(): 2
p1:<99,201> p2:<401,201>
lines.size(): 2
p1:<102,198> p2:<398,198>
为什么我要两行?
根据HoughSpace中的bin的智慧,并非所有的像素都可能被分配到该行。尝试更宽/更少的垃圾箱。 – MisterC
你是否在houghLines之前使用Canny边缘检测?你应该检查它的外观如何。渐变可能在粗线的每一侧产生一条边。 – Micka
@Micka,是的样本实际上使用canny算法。 – CroCo