3

我正在为打印的扫描文档制作阿拉伯语 OCR ... 某些扫描文档可能以高度 8 的字体大小书写,这非常小... 我想将高度调整为 60 像素,但可能会出现一些伪影,原因是阿拉伯字符的性质..有些字符可能重叠。我在调整大小后使用了局部阈值方法,但结果仍然不可接受......有什么想法吗?

这是一个示例图像:

图 1

这是使用 50 作为窗口大小调整和应用局部自适应阈值后的相同示例:

图 2

如您所见,某些字符中存在一些不连续性,例如:

图 3

有什么方法可以在保留文本形状的同时调整图像大小?

我修复字符不连续性的方法:

  • 使用 16 窗口大小的局部自适应阈值调整大小之前的阈值原始图像(这将解决字符不连续但字符中的孔被填充)调用它smallbw

  • 使用调整大小并smallbw使用imresize(smallbw, [nh nw], 'nearest')填充字符中的孔imfill

  • imresize(originalIm, [nh nw], 'nearest')使用调用将原始图像的大小调整为 60 像素largebw

  • largebw在使用中填补漏洞imfill并调用它bwfill

  • largebw从by 中提取孔bwholes = bwfill - largebw

  • 最后,减去bwholessmallbw得到这个

图 4

您可以在此处看到字符 @Image 3 中发现的不连续性已得到解决...但是这里还提出了另一个问题,有些字符可能会重叠,如此处所示

图 5

这是迄今为止我能取得的最好结果......还有其他想法可以解决这些问题吗?如果您认为这个问题没有解决方案,我将如何解决它而不是使用调整大小?使用 12 字体大小的文本而不是 8 字体怎么样?

有用的链接: 使用的局部自适应阈值方法

操作系统:windows 7

编程环境:Matlab 2013a - 图像处理工具箱

4

0 回答 0