平滑位图图像中的“字体字符”轮廓

信息处理 图像处理 图像分割 ocr
2022-02-19 07:05:38

Adobe Acrobat 将此功能称为ClearScan在进行 OCR 时,它可以通过平滑字体轮廓上的不规则性来增强图像。

例如,这个来源:

在此处输入图像描述

转向这个:

在此处输入图像描述

是否有其他具有此类功能的工具或公共算法(Matlab/Python)可以平滑任意类似字体的对象的轮廓?

1个回答

我认为开源命令行程序potrace可能会做你想做的事。它将位图转换为贝塞尔曲线,并有许多选项允许您在平滑度和准确性之间进行权衡。

开源Inkscape 矢量 (svg) 编辑器内置了 potrace(在 Path->Trace Bitmap 菜单选项下)。在 Inkscape 中应用您的示例的结果,(我使用 Inkscape 调用“亮度截止”的模式,默认阈值0.45,因为您的图像已经是黑白而不是灰度)将生成的贝塞尔曲线的大小向上缩放一点,然后让 Inkscape 输出位图是:

在此处输入图像描述

转换为贝塞尔曲线然后返回灰度的一个可爱的副作用是您可以在曲线周围获得很好的抗锯齿效果。

对于灰度输入图像,我发现“边缘检测”模式效果更好一些。还有一些选项可以选择更少或更多的平滑,以及更少或更多的斑点消除。