我成功地能够将图像中的发束检测为线条。我看到输出图像将每根头发检测为线。我使用cvHoughLines2()
,方法参数为CV_HOUGH_PROBABILISTIC
。如何统计OpenCV中的行数(Hough Trasnform)
现在我想要统计这些行。输出图像在每根头发上显示1或2行。我看到每条线都由小线段组成。所以很难直接得到他们的总数。 对此有何建议?
感谢, 普拉迪普
我成功地能够将图像中的发束检测为线条。我看到输出图像将每根头发检测为线。我使用cvHoughLines2()
,方法参数为CV_HOUGH_PROBABILISTIC
。如何统计OpenCV中的行数(Hough Trasnform)
现在我想要统计这些行。输出图像在每根头发上显示1或2行。我看到每条线都由小线段组成。所以很难直接得到他们的总数。 对此有何建议?
感谢, 普拉迪普
你实际上可能会更好使用Canny边缘检测。从您的描述来看,它似乎比霍夫变换有几个关键优势:
给定正确的参数,它可能能够用一条单一的连续线唯一地检测每根头发。
这是在OpenCV中实现的cvCanny()
函数。利用threshold1
和threshold2
参数(第3个和第4个参数)的值来实现检测和跟踪。对于实际的线条计数,我不知道如何最好地解决这个问题(Canny输出与Hough变换输出有些不同),但是您可能会发现使用独特的实心边缘比使用Hough变换输出更容易碎片化的线参数组。
hough函数应该在OpenCV2中返回一个向量,或者在OpenCV1中返回一个CvSeq。你可以很容易地获得它们的长度并遍历它们。有关更多详细信息,请参阅OpenCV文档中的示例代码。
你能算清发线吗? @pradeep – 2016-10-10 07:48:56