感兴趣的区域和霍夫线检测失真线的准确性

时间:2013-10-04 04:30:51

标签: opencv resize hough-transform distortion

我正在尝试分割水平和垂直堆叠的书脊。当图片太大时,我遇到了一个问题。 enter image description here

在整个窗口中只能看到部分图像,这意味着它不会处理它想要处理的原始图像:

enter image description here

它处理的图像 enter image description here

它应该处理的图像 enter image description here

我甚至无法查看想要处理的整个图像。因此,我尝试使用=>

最小化此图片的窗口

cv :: resize(image,image,cv :: Size2i(image.cols / 6,image.rows / 6)); //调整为图像的1/6

导致另一个问题,当图片很小时,它变得太小,甚至无法检测到直线。

因此,我试过=> cv :: resize(image,image,cv :: Size2i(750,400));

这导致了另一个问题。虽然上面的图像在上面显示整个窗口,但对于较小的图片,我的houghline检测变得更不稳定。

enter image description here enter image description here

有人知道如何解决这个尺码问题吗?还有如何改进我的霍夫线检测现在相当不稳定以分离书籍?我想在一摞书之间画一条线。

希望很快能收到你们的消息。谢谢!!!

2 个答案:

答案 0 :(得分:1)

看起来你正在调整之前的图像你执行Hough变换,我想你想要做什么之后。这样您就可以在图片中获得足够的分辨率,以便检测到合适的线条,您仍然可以在显示器上查看。

其次,您希望改进检测书籍之间的分离。我的建议是对图像执行一些预处理。有很多方法可以做到这一点。 Mean Shift Segmentation按颜色分隔图片就是一个例子。

过滤结果是另一种方法。只保留穿过黑暗区域的线条 - 因为书本之间更可能是黑暗的 - 就是这样。还有很多方法。

另外,请不要忘记tweak the parameters of the Hough Transform,看看哪种方法最适合您的测试集。它可能会揭示一些有趣的结果!

祝你好运!

答案 1 :(得分:1)

IMO首先你必须改进边缘检测输出。它包含非常少的边缘。你可以使用 cvCanny cvSobel 。也可以使用概率Hough line ,这会产生更好的结果。你可以调整 cvHoughLines 的参数,如threshold,minLinLength,maxLineGap,如图所示,线条过于接近。 请查看详细信息:

http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/hough_lines/hough_lines.html