2017-06-23 48 views
1

我正在嘗試使用Rmagick和Tesseract進行OCR。我創建了一些文字在這裏簡單的圖片文件:Tesseract沒有看到在Rmagick中創建的文件的圖像密度

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') 

我嘗試用一​​個shell腳本這裏來閱讀:

`tesseract #{input} tmp_text_from_img` 

然而,正方體一直給我一個警告:

警告。無效的分辨率0 dpi。用70代替。

這會導致非常糟糕的準確性。我覺得很奇怪,因爲我在創建圖像時明確設置了兩次。有什麼我做錯了嗎?或者有沒有辦法強制tesseract使用正確的dpi?

謝謝大家!

+3

您必須指定*單位*密度,即每像素英寸以及密度本身。 –

回答

0

與解決它:

canvas.write('tmp_text_img.png') {self.units= Magick::PixelsPerInchResolution; self.density = "300"} 
相關問題