我想開發一個可以從圖像中讀取文本的應用程序。我必須清理圖像的背景。我聽說fred的imagemagick textcleaner腳本可以使用,但我不知道如何使用它。有沒有人有任何想法呢?如何在opencv中使用fred的imagemagick textcleaner腳本C++/opencv java?
輸入圖像:
我想開發一個可以從圖像中讀取文本的應用程序。我必須清理圖像的背景。我聽說fred的imagemagick textcleaner腳本可以使用,但我不知道如何使用它。有沒有人有任何想法呢?如何在opencv中使用fred的imagemagick textcleaner腳本C++/opencv java?
輸入圖像:
沒有看到你的數據首先很難猜測。如果你有相當統一的背景,你可以使用自適應閾值去除背景。
以下是關於如何使用自適應閾值的theoretical informations。該算法在OpenCV中實現。
我試過了,雖然新聞不好,但它仍然是一個答案,即使是負面的。也許有人想進一步採取我的努力,或者你覺得我的努力確認textcleaner
是不是要走的路。無論如何,我把你的形象,並寫了一個腳本來改變最有前途的參數弗雷德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之外,你還知道其他什麼嗎? – patrick 2015-04-03 13:07:03
可悲的是我不這樣做,對不起。 – 2015-04-03 13:10:20
我已經使用自適應閾值,但它不工作。我已添加輸入圖像,請檢查。 – patrick 2015-04-02 08:36:01