我正在为打印的扫描文档制作阿拉伯语 OCR ... 某些扫描文档可能以高度 8 的字体大小书写,这非常小... 我想将高度调整为 60 像素,但可能会出现一些伪影,原因是阿拉伯字符的性质..有些字符可能重叠。我在调整大小后使用了局部阈值方法,但结果仍然不可接受......有什么想法吗?
这是一个示例图像:
这是使用 50 作为窗口大小调整和应用局部自适应阈值后的相同示例:
如您所见,某些字符中存在一些不连续性,例如:
有什么方法可以在保留文本形状的同时调整图像大小?
我修复字符不连续性的方法:
使用 16 窗口大小的局部自适应阈值调整大小之前的阈值原始图像(这将解决字符不连续但字符中的孔被填充)调用它
smallbw
。使用调整大小并
smallbw
使用imresize(smallbw, [nh nw], 'nearest')
填充字符中的孔imfill
imresize(originalIm, [nh nw], 'nearest')
使用调用将原始图像的大小调整为 60 像素largebw
largebw
在使用中填补漏洞imfill
并调用它bwfill
largebw
从by 中提取孔bwholes = bwfill - largebw
最后,减去
bwholes
从smallbw
得到这个
您可以在此处看到字符 @Image 3 中发现的不连续性已得到解决...但是这里还提出了另一个问题,有些字符可能会重叠,如此处所示
这是迄今为止我能取得的最好结果......还有其他想法可以解决这些问题吗?如果您认为这个问题没有解决方案,我将如何解决它而不是使用调整大小?使用 12 字体大小的文本而不是 8 字体怎么样?
有用的链接: 使用的局部自适应阈值方法
操作系统:windows 7
编程环境:Matlab 2013a - 图像处理工具箱