opencv - 改善Opencv HoughLinesP中的行提取

标签 opencv image-processing grayscale hough-transform

我正在使用HoughLinesP从灰度图像中提取线条。

下面是我的伪代码。

threshold(img_tmp,bin_img,30,255,cv::THRESH_BINARY);
Canny(bin_img, canny_img, 50, 255, 3);
vector<Vec4i> tmp_lines;
HoughLinesP(canny_img,tmp_lines, 1, CV_PI/360,10, 10, 1);

在缩放的图像中可以看到,单条边(即图像中的单条线)返回的线多于一条。 16,22和0,28以及10,11和23,18,24线对应于单条线。

我如何才能获得单边单线,任何建议?

输入图像:

提取的行

问题

谢谢。

最佳答案

同样,Canny或任何边缘检测算法都不适合此类输入,因为这些线基本上是边缘。尝试在输入上应用某种非最大值抑制,然后在没有任何类型的边缘检测的情况下对霍夫线进行抑制。

关于opencv - 改善Opencv HoughLinesP中的行提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28857959/

相关文章:

python - 如何在 OpenCV Python 中检测红色?

python - 在opencv中调整图片大小?

python - 直方图均衡化

image - 如何在 Matlab 中傅立叶相位扰乱灰度 JPEG 图像?

c# - 如何使用 C# 裁剪图像?

png - 16位灰度png

c++ - 如何构建使用 OpenCV 的 XCode 6 iOS 应用程序 - 未定义错误 __cplusplus

visual-studio-2010 - 如何编写视频?

html - 以灰度保存 Canvas

c++ - 带 OpenCV 的灰度 C++(出现一些噪音)