2017-06-23 4 views
1

Ich versuche Rmagick und Tesseract für OCR zu verwenden. Ich erstelle eine einfache Bilddatei mit einem Text hier:Tesseract sieht die Bilddichte einer in Rmagick erstellten Datei nicht

canvas = Magick::ImageList.new 
    canvas.new_image(300, 300) { self.density = "500" } 

    text = Magick::Draw.new 
    text.annotate(canvas, 0,0,2,2, 'some_text') { 
     self.font = font_path 
     self.gravity = Magick::CenterGravity 
     self.pointsize = 100 
     self.density = '300' 
    } 

    canvas.write('tmp_text_img.png') 

Und ich versuche es mit einem Shell-Skript hier zu lesen:

`tesseract #{input} tmp_text_from_img` 

jedoch Tesseract hält mir eine Warnung zu geben:

Warnung. Ungültige Auflösung 0 dpi. Verwenden Sie stattdessen 70.

Dies führt zu wirklich beschissener Genauigkeit. Was ich komisch finde, weil ich es beim Erstellen des Bildes explizit zweimal gesetzt habe. Gibt es etwas, was ich falsch mache? Oder gibt es eine Möglichkeit, Tesseract zu zwingen, die richtige dpi zu verwenden?

Vielen Dank!

+3

Sie die * Einheiten angeben * der Dichte, d.h. Pixel pro sowie der Dichte selbst Inch. –

Antwort

0

es gelöst mit:

canvas.write('tmp_text_img.png') {self.units= Magick::PixelsPerInchResolution; self.density = "300"} 
Verwandte Themen