【问题标题】:how to use fred's imagemagick textcleaner script in opencv c++/opencv java?如何在 opencv c++/opencv java 中使用 Fred 的 imagemagick textcleaner 脚本?
【发布时间】:2023-03-19 05:08:02
【问题描述】:

我正在尝试开发一个可以从图像中读取文本的应用程序。我必须清理图像的背景。听说fred的imagemagick textcleaner脚本可以用,但不知道怎么用。有人知道吗?

输入图像:

【问题讨论】:

    标签: opencv image-processing tesseract opencv4android


    【解决方案1】:

    我对此进行了尝试,虽然消息不好,但它仍然是一个答案,即使是否定的。也许其他人想进一步推动我的努力,或者你觉得我的努力证实textcleaner 不是要走的路。无论如何,我拍了你的照片并写了一个脚本来改变 Fred Weinhaus 的textcleaner 中最有希望的参数。我觉得可能有帮助的是-f-o-t,我在它们的可能范围内改变了它们,如下所示:

    #!/bin/bash
    for f in 1 5 10 15 20 25; do
       for o in 1 3 6 9 12; do
          for t in 1 25 50 75 100; do
             ./textcleaner -f $f -o $o -t $t cc.jpg z_${f}_${o}_${t}.png
             convert -label "f=$f, o=$o, t=$t" z_${f}_${o}_${t}.png miff:-
          done
       done
    done | montage - -frame 5 -tile 6x montage.png
    

    这给了我所有结果的蒙太奇

    在我看来,最有希望的可能是 f=10, o=1, t=1

    然后我想“为什么还要看我喜欢的东西,让我们看看 Tesseract 喜欢什么?”。所以我把脚本改成了这样,Tesseract 可以查看所有排列:

    #!/bin/bash
    for f in 1 5 10 15 20 25; do
       for o in 1 3 6 9 12; do
          for t in 1 25 50 75 100; do
             ./textcleaner -f $f -o $o -t $t cc.jpg z_${f}_${o}_${t}.png
             tesseract z_${f}_${o}_${t}.png res > /dev/null 2>&1
             if grep "[0-9]" res* ; then echo z_${f}_${o}_${t}.png ;fi
          done
       done
    done
    

    结果很糟糕......这是输出

    um 0-" V _
    L"“1}- H
    z_5_3_50.png
    :1:J£‘u  “
    z_15_3_75.png
    ”':{E]!)  /3: '55‘
    z_15_6_75.png
     E2?
    z_15_9_1.png
    :1:
    z_15_12_100.png
    I -.352}:  "H ,1 5
    z_20_12_25.png
    1/
    , ,5». 3».
    z_25_6_75.png
     3
    z_25_9_25.png
     - ::'§—:am I-:L’5‘:*‘f§~f.’i'7""“-‘-"I 5="
    z_25_12_1.png
    7 3:2‘
    z_25_12_75.png
    

    甚至没有什么用处。也许其他人对如何调整它以及调整哪些参数有更好的想法,但我怀疑textcleaner 可能是这里的错误方法。

    【讨论】:

    • 谢谢。你知道除了 textcleaner 以外还有什么可以用的吗?
    • 很遗憾我没有,抱歉。
    【解决方案2】:

    如果不先查看您的数据,就很难猜到。如果您有相当均匀的背景,您可以使用自适应阈值去除背景。

    这里有一些关于如何使用自适应阈值的theoretical informations。该算法在 OpenCV 中实现。

    【讨论】:

    • 我已经使用了自适应阈值,但它不起作用。我已添加输入图像,请检查。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-20
    • 2017-11-02
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    相关资源
    最近更新 更多