Tesseract 看不到在 Rmagick 中创建的文件的图像密度
Tesseract not seeing the image density of a file created in 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 一直给我警告:
Warning. Invalid resolution 0 dpi. Using 70 instead.
这会导致非常糟糕的准确性。我觉得这很奇怪,因为我在创建图像时明确设置了两次。我做错了什么吗?或者有没有办法强制 tesseract 使用正确的 dpi?
谢谢大家!
解决方法:
canvas.write('tmp_text_img.png') {self.units= Magick::PixelsPerInchResolution; self.density = "300"}
我正在尝试使用 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 一直给我警告:
Warning. Invalid resolution 0 dpi. Using 70 instead.
这会导致非常糟糕的准确性。我觉得这很奇怪,因为我在创建图像时明确设置了两次。我做错了什么吗?或者有没有办法强制 tesseract 使用正确的 dpi?
谢谢大家!
解决方法:
canvas.write('tmp_text_img.png') {self.units= Magick::PixelsPerInchResolution; self.density = "300"}