我正在尝试开发一个可以从图像中读取文本的应用程序。我必须清理图像的背景。听说fred的imagemagick textcleaner脚本可以用,但不知道怎么用。有人对此有任何想法吗?
输入图像:
我正在尝试开发一个可以从图像中读取文本的应用程序。我必须清理图像的背景。听说fred的imagemagick textcleaner脚本可以用,但不知道怎么用。有人对此有任何想法吗?
输入图像:
我对此进行了尝试,虽然消息不好,但它仍然是一个答案,即使是否定的。也许其他人想进一步推动我的努力,或者你觉得我的努力证实了这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
可能是错误的方法。
如果不先查看您的数据,就很难猜到。如果您有相当均匀的背景,您可以使用自适应阈值来去除背景。
以下是有关如何使用自适应阈值的一些理论信息。该算法在 OpenCV 中实现。