Tesseract没有看到在Rmagick中创建的文件的图像密度

时间:2017-06-23 07:56:59

标签: ruby imagemagick ocr tesseract rmagick

我正在尝试使用Rmagick和Tesseract进行OCR。我正在创建一个带有一些文本的简单图像文件:

    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`

然而,Tesseract不断给我一个警告:

  

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

这导致非常糟糕的准确性。我发现这很奇怪,因为我在创建图像时明确地设置了两次。有什么我做错了吗?或者有没有办法强制tesseract使用正确的dpi?

全部谢谢!

1 个答案:

答案 0 :(得分:0)

解决它:

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