处理图像时删除文本

时间:2016-12-26 16:34:48

标签: python image opencv

我正在开发一个应用程序,我需要像Cam Scanner这样的功能,在图像中检测文档。为此,我使用Canny Edge检测,然后使用Hough Transform。

结果看起来很有希望,但文档中的文字正在创建问题,如下图所示:

原始图片 Original Image

精确边缘检测后 After Canny Edge detcetion

霍夫变换后 After Hough Transform

我的问题在于第三张图像,底部附近的原始图像中的文本强制执行hough变换以检测水平线(从底部开始的第二个簇)。

我知道我可以采用最大的四边形,并且在大多数情况下都可以正常工作,但我仍然想知道在这个处理过程中我可以忽略文本在边缘上的影响。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:4)

我在500x700的图像中借助尺寸为15(正方形)的中值滤波器解决了文本问题。

中位数滤镜不会影响纸张的边界,但可以帮助完全消除文本。

使用它我能够获得更有效的界限。

答案 1 :(得分:1)

您可以尝试的另一种方法是使用阈值来查找纸张边界。这将创建二进制图像。然后,您可以检查白色像素的斑点,并查看是否有足够大的纸张并具有正确的尺寸。如果符合标准,您可以找到此斑点的最小/最大点来表示纸张。

有几种方法可以进行阈值处理,包括迭代,otsu和自适应。

此外,为了获得最佳效果,您可能需要扩展二进制图像以关闭表格中的黑线,如示例所示。