2015-04-02 1 views
2

Я пытаюсь разработать приложение, которое может читать текст с изображения. Я должен очистить фон изображения. Я слышал, что скрипт textemaner для imagemagick fred может использоваться, но я не знаю, как его использовать. Кто-нибудь знает об этом?Как использовать fred's imagemagick textcleaner script в opencv C++/opencv java?

входное изображение:

enter image description here

ответ

0

Не видя ваши данные первого это трудно угадать. Если у вас достаточно ровный фон, вы можете использовать адаптивное пороговое значение для удаления фона.

Ниже приведено описание theoretical informations о том, как использовать адаптивное пороговое значение. Этот алгоритм реализован в OpenCV.

+0

Я уже использовал адаптивное пороговое значение, но оно не работает. Я добавил входное изображение, пожалуйста, проверьте. – patrick

6

У меня была попытка на это, и хотя новость не очень хорошая, это все равно ответ, даже если отрицательный. Может быть, кто-то еще хочет предпринять мои усилия дальше, или, может быть, вы чувствуете, что мои усилия подтверждают, что textcleaner - это не путь. Во всяком случае, я взял ваше изображение и написал сценарий, чтобы изменить самые перспективные параметры Fred Weinhaus's 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 

Это дает мне этот монтаж всех результатов

enter image description here

На мой взгляд, наиболее перспективным было возможно, е = 10, а = 1, т = 1

enter image description here

Я тогда подумал «Зачем беспокоиться о том, что мне нравится, посмотрим, что любит Тессеракт?». Поэтому я изменил сценарий к этому так, что 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 может быть неправильным подходом здесь.

+0

Спасибо за это. Знаете ли вы что-нибудь, кроме текстового чистящего средства, которое можно использовать? – patrick

+0

К сожалению, нет, извините. –

Смежные вопросы