【问题标题】:Making text more readable Imagemagick使文本更具可读性 Imagemagick
【发布时间】:2014-03-15 06:49:10
【问题描述】:

我这里有这张图片: http://imgur.com/QFSimZX

当人们看到它时,人们可以看到它在第一行写着 PINE (N),在第二行写着 PI。我遇到的问题是,当使用 tesseract-ocr 阅读文本所说的内容时,它的输出非常糟糕。我有很多这样的图像,需要自动化这个过程,所以手动做这件事是不明智的。我已经使用 imagemagick 使其处于当前状态,但想知道是否有任何方法可以通过连接黑色的封闭区域来使该图像更具可读性。我对图像处理几乎一无所知,所以我不知道从哪里开始搜索。如果有人知道一种提高可读性的方法,我将不胜感激。

【问题讨论】:

    标签: imagemagick imagemagick-convert


    【解决方案1】:

    这是一个非常棘手的问题,最有效的解决方案将敏感地取决于图像的特征 - 类型是什么比例?图像退化到什么程度?您想要保留的细节和想要修复的降级之间的界限只有人工操作员才能决定,因此对于这个问题没有自动化的万能解决方案,您应该期望做一些实验。

    基本技术是您希望将图像中每个像素的值调整为与它周围的像素相似。用这些术语,您可能会意识到这只是一个模糊操作。但是,在您模糊图像之后,您会留下边缘模糊的字母,因此要再次获得清晰的字母,这是一个阈值操作 - 您设置了一个阈值级别的灰色,所有比灰色阴影更亮的东西都变成白色,所有比灰色阴影更暗的东西阈值变为黑色。模糊加阈值组合为您提供了广泛的效果,您可以使用这些效果使文本更清晰(或更不清晰)。对于给出的示例图像,我在模糊半径为 5 和阈值水平为 70% 的情况下获得了相当不错的结果。

    convert QFSimZX.jpg -blur 5 -threshold 70% output.png
    

    如果需要,您可以通过使用 -fx 运算符实现自定义模糊功能来获得比这更复杂的功能。 Fx 功能强大但有些复杂,您可以在此处阅读:http://www.imagemagick.org/script/fx.php。我尝试了一个快速的 fx 表达式,它首先根据其上下邻居填充像素,然后根据其左右邻居填充像素。这种技术确实允许您微调在计算模糊时考虑哪些像素:

    convert QFSimZX.jpg -monochrome \
        -fx 'p[0,-1]+p[0,1] >= 2 ? 1 : 0' \
        -fx 'p[-1,0]+p[1,0] >= 2 ? 1 : 0' \
        output.png
    

    【讨论】:

    • 这个答案已经过时了,因为 Imagemagick 现在有一个更好的工具来解决这个问题。
    猜你喜欢
    • 2013-10-20
    • 2012-07-02
    • 2014-12-24
    • 2019-09-29
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 2020-06-09
    • 1970-01-01
    相关资源
    最近更新 更多