繁体   English   中英

如何检测图像中的文本区域?

[英]How to detect text region in image?

给定图像(即报纸、扫描的报纸、杂志等),如何检测包含文本的区域? 我只需要知道区域并删除它,不需要做文本识别。

目的是我想删除这些文本区域,以便加快我的特征提取过程,因为这些文本区域对我的应用程序毫无意义。 有人知道怎么做吗?

顺便说一句,如果这可以在 Matlab 中完成就好了!

最好的事物!

在此处输入图片说明

您可以使用描边宽度变换 (SWT)来突出显示文本区域。 使用我在这里发布的 mex 实现,您可以

img = imread('http://i.stack.imgur.com/Eyepc.jpg');
[swt swtcc] = SWT( img, 0, 10 );

SWT.m中使用边缘图提取和图像过滤的内部参数可以帮助您根据需要调整生成的掩码。

要得到这个结果:在此处输入图片说明 我将这些参数用于SWT.m的边缘图计算:

edgeMap = single( edge( img, 'canny', [0.05 0.25] ) );

自然图像中的文本检测是计算机视觉社区的一个活跃研究领域。 你可以参考ICDAR论文。 但在你的情况下,我认为它应该足够简单。 由于您有来自报纸或杂志的文本,它应该是固定大小和水平方向的。

因此,您可以应用固定大小的扫描窗口,例如 32x32。 在 ICDAR 2003 训练数据集上训练它,用于包含文本的正窗口。 你可以使用一个小的颜色和渐变特征集,并训练一个 SVM,这将给出一个窗口是否有文本的正面或负面结果。

如需参考,请访问http://crypto.stanford.edu/~dwu4/ICDAR2011.pdf 对于代码,您可以尝试他们的主页

Matlab 中计算机视觉系统工具箱中的这个示例展示了如何使用 MSER 区域检测文本。

如果您的图像二值化良好并且您知道文本的通常大小,则可以使用Horizo​​ntalRunLengthSmoothingVerticalRunLengthSmoothing算法。 它们在开源库Aforge.Net中实现,但在 Matlab 中重新实现它们应该很容易。 这些算法的结果图像的交集将很好地表明该区域包含文本,它并不完美,但速度很快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM