用于线检测的OpenCV函数的比较:findContours + fitLine vs HoughLines vs HoughLinesP

时间:2016-09-16 12:16:54

标签: c++ opencv

我正在编写一个应用程序,该应用程序正在处理来自相机输入的图像,并根据长度和位置的评分检测并将图像中的线条分类到最有效的线条。现在应用程序正常工作(sorta),但还有很多调整要做。在我走这条路之前,我想确保我使用最好的功能来完成任务。

我现在在做什么:
1.将图像转换为灰度

2.模糊
3. Canny
4. findContours,由父母和子女分裂heirachy 5.遍历所有轮廓并且:
    一世。按最小弧长过滤
    II。找到封闭的eclipse和fitLine
    III。根据日食,装配线和轮廓的各种属性进行过滤 6.使用我自己的评分系统评估最突出的'图像中的一行

现在我喜欢我用轮廓做的事情,我可以从轮廓中提取大量自己的数据,并在整个过程中保持轮廓,尽管我不一定需要它到底。但是,我不确定这是我最好的选择。

我现在正在考虑的是HoughLines implmentation,或者更可能是HoughLinesP。现在我已经了解了HoughLines与HoughLinesP的seen some pretty good explanations,但没有一个比较它们在每个轮廓上使用findContours然后fitLine。特别有趣的是findContours + fitline vs HoughLinesP,因为它们都产生了Vec4f系列。你能解释一下:

(cv :: findContours + cv :: fitLine)vs cv :: HoughLinesP
    1)哪种性能最佳?
    2)哪个会更好地处理图像中的噪声?     3)还有其他值得一提的差异吗?

我最初的想法是HoughLinesP会提供更好的性能,但是你只限于函数提供的过滤/阈值处理,最后你没有创建线的实际轮廓(这可能是有用的,取决于在申请上)。至于哪一个更好地处理噪声,我认为findContour方法对你自己的自定义过滤器有更大的潜力,但如果它实际上比HoughLinesP更好地执行你的实现。或者,HoughLines本身并没有提供太多优势,而对于我的应用程序来说,它并没有用,因为我想要这条线的长度。

你的想法?

0 个答案:

没有答案
相关问题