当一个典型的移动电话用户拍摄图片以用于卡大小的物体,一些背景纹理通常包括在图像中 - 请参考所附的样品。 在某些情况下,这样的背景下可能会污染OCR的准确性。
我想知道这是否有解决方案或不去除背景(很积极的,也有),或检测背景区域,以便人们可以只OCR之前裁剪他们。 在所附的图像的情况下,木材的表和反顶呈现是被去除的候选人。 我猜想,对比色可能是一个解决方案,但不那么肯定。
当一个典型的移动电话用户拍摄图片以用于卡大小的物体,一些背景纹理通常包括在图像中 - 请参考所附的样品。 在某些情况下,这样的背景下可能会污染OCR的准确性。
我想知道这是否有解决方案或不去除背景(很积极的,也有),或检测背景区域,以便人们可以只OCR之前裁剪他们。 在所附的图像的情况下,木材的表和反顶呈现是被去除的候选人。 我猜想,对比色可能是一个解决方案,但不那么肯定。
有一些情况下,你,作为一个人,有麻烦的背景和前景之间的挑剔,所以肯定是没有方法做正确,你想要什么。 既然你提到OCR,我假设你真的想消除非文字的一切。 这不会使问题变得更容易其实,有什么我实际上假设是,你要记住这是非常强烈对比其他对象的对象(如前景和背景,或黑色文本在白色背景上,例如)。 同样,对于没有完美的方法。
所以,这一切的答案是要做的是提供一个简单的方法,可以帮助你在你的任务。 该方法的准备形态工具的组合以及用于二值化的大津方法,因为它在统计学上是最佳的。 其结果是有潜在价值看区域。 请注意,您肯定需要将这些结果与其他许多不同的分析相结合,良好的OCR系统出现大大超出这些直接的方法。
方法:1)将图像转换为灰度(在颜色不感兴趣,但不同的方法,当然可以使用它们); 2)使用H-圆顶变换以除去无关的最大值; 3)计算形态梯度; 4)通过二值化大津; 5)通过面积开口取出小物体。 去除不相关的最大值是你的任务很重要,因为你可以有引起不良相机坏相机的闪光灯有经验的摄影师一起组合相当可怕的区域。 H-穹顶变换是基于形态学重建,因此,如果您的库具有后者而非前者,它是直接实现它(否则你可以学习如何高效地实现后者)。 离散的图像形态梯度是应用其趋向于即使不良照明很好地工作,因为它是一个局部方法的非常简单的方法。 由大津其结果阈值保持最强的边缘(其可能包含噪声和其他次要的功能)。 您可以通过高斯平滑,这可能作为噪声抑制的起始工具之前这一切。 小的特性是由开口面积容易地除去。 在Matlab中,这是可以做到如下所示:
f = rgb2gray(imread(yourimage));
se = strel('square', 3);
g = imhmax(f, 50); % h-dome with h = 50
g = imdilate(g, se) - imerode(g, se); % morphological gradient
h = im2bw(g, graythresh(g)); % graythresh applies Otsu's method
w = bwareaopen(h, 50);
假定对象小于50个像素是不相关的(这可能不总是为小的文本的情况下)。
以下是w
为你的例子图片:
这些输出给的你应该寻找文本,即连接部件内部的地方的指示。