检测图像像素的列或行是否为线

时间:2014-08-06 01:37:59

标签: opencv image-processing line ocr noise

我试图检测扫描文档的边框,因为它有助于提高我的OCR提取率。边界被认为是边缘噪音所以我必须摆脱它们。边框通常在图像中具有最高密度。

我检查过图像中的每一列像素,而密度最高的列可能是一个边框,当且仅当它是一条线时。这就是我的问题出现的地方。我不知道如何检测像素列是否为一行。

非常感谢任何帮助。谢谢。

2 个答案:

答案 0 :(得分:0)

Opencv中有一种基于Hough变换的线检测算法:Tutorial on Hough transform

这将检测图像中存在的线条,您只需要检查您检测为边框的像素是否属于检测到的线条之一。

答案 1 :(得分:0)

您使用霍夫线变换,但它会为您需要进行OCR的数据提供线条。

基于您可以想到的问题的最简单的解决方案就是这个。 从边框开始,您可以根据宽度和高度的某个阈值来缩小搜索空间。 例如,如果您的图片' wx h' 且搜索空间宽度' ,则您的搜索空间将' 0到s' ' w-s to w' ' 0到s' ' h-s到h'