Tesseract ve ocrfeeder ile bir görüntüdeki metni doğru şekilde nasıl tanıyacağınızı öğrenin.

Birçoğunuz optik karakter tanıma (OCR) programlarını zaten biliyor olmalısınız, öyleyse, diğerlerinin yanı sıra eñe, tílde gibi tipik İspanyolca karakterlerini tanımayan bazılarına rastladınız (ñ, ó, ü).

Şimdi teşekkürler teserakt ve pakete tesseract-ocr-eng Bu karakterleri tanıyabileceğiz ve renk veya piksel seviyelerinin doğru olmadığı durumlarda belirli görüntüleri nasıl ele alacağımızı göreceğiz.

Öncelikle aşağıdaki programları yüklemeliyiz:

tesseract-ocr
tesseract-ocr-eng
ocr besleyici

Debian'da bunları önerilen yazılımları yüklemeden kurmanızı tavsiye ederim:

sudo apt-get --no-install-recommends install ocrfeeder tesseract-ocr-spa tesseract-ocr

Mektubun okunaklı olduğu bir görselimiz (taranmış belge) varsa, durumların yaklaşık% 90'ında metni tanımak mümkün olacak, tablolar tanınmayacak, görselin 2 sütunu varsa, önce bir sütunu otomatik olarak tanıyacak ve sonra diğeri metnin sırasını korumak için.

Metni tanımanın 2 yolu vardır, biri terminaldeki komut satırı veya ocrfeeder aracılığıyla, ikincisi daha fazla işlem süresi gerektirir:

Komut satırı yöntemi:

tesseract "/entrada/fichero.jpg" "/salida/fichero.txt" -l spa -psm 3

Birden fazla görüntünün dönüştürülmesi için aşağıdaki komutu kullanacağız:

cd /carpeta/imagenes
find ./ -name "*.jpg" | sort | while read file; do tesseract "$file" "`basename "$file" | sed 's/\.[[:alnum:]]*$//'`.txt" -l spa -psm 3; done

Elde edilen metin dosyalarını söz konusu klasörde birleştirmek için paragrafların doğru şekilde birleştirileceği aşağıdaki komutu kullanacağız.

cd /carpeta/imagenes
find ./ -name "*.txt" | sort | while read file; do cat "$file" | sed 's|^$|##|g' | tr '\n' " " | tr '##' "\n" >> Texto-unido.txt; done

Ocrfeeder ile yöntem:
1- ocrfeeder programını açıyoruz.
2- Motoru Araçlar - OCR Motorları'na tıklayarak düzenleriz, esseract motorunu seçip düzenle'ye tıklarız ve motor argümanları yazan yerde bunun için komut dosyasını değiştiririz:

$IMAGE $FILE -l spa -psm 3 > /dev/null 2> /dev/null; cat $FILE.txt; rm $FILE $FILE.txt

3- Birkaç görüntünün olduğu bir görüntüyü veya klasörü içe aktarıyoruz.
4- Tanımlama belgesine tıklıyoruz, belge tanımlandıktan sonra, hangi bölümlerinin resim veya metin olacağını manuel olarak seçebilirsiniz.
5- Belgeyi dışa aktarmadan önce Düzenle - Düzenle sayfasına tıklıyoruz, istenen sayfayı seçiyoruz, en yaygın olanı harf (harf).
6- Dosya - Dışa aktar'a tıkladığımız belgeyi dışa aktarmak için, istenen çıktı biçimini seçiyoruz, belgede görüntüler varsa odt veya html biçimini kullanmanızı tavsiye ederim, yalnızca metinse Düz Metin (txt) biçimini kullanmak en iyisidir .

Bu burada bitmiyor çünkü kalitesi yeterli olmayan birçok fotokopi var, bunları onarmak için gimp ve kabartmalı filtre kullanacağız (Bu işlem yavaş olabilir):
1- Görüntüyü gimp ile açıyoruz.
2- Filters - Distortions - Embossing'e tıklıyoruz, Bump map kutusunu seçiyoruz, azimut seviyelerini yaklaşık 162,25'e, yüksekliği 88,73'e ve derinliği 6 veya 3'e ayarlıyoruz. Görüntüyü% 100 kalitede kaydediyoruz. jpg ise export - name.jpg.

İsteğe bağlı olarak Renkler - Seviyeler - otomatik seçeneğine tıklayarak beyaz seviyelerini ayarlayabilirsiniz.