Я пытаюсь сделать распознавание OCR на скриншоте, после снятия скриншота (из области рабочего стола, на которую вы щелкнули), он идет до pibxbuffer, содержимое которого находится в pytesseract. Но после использования качества изображения pixbuffer это плохо: он перекошен (я попытался сохранить его в каталоге, а не pixbuffer, и посмотрел на него).Улучшение OCR изображения без масштабирования (с использованием PIL, pixbuf)?
def takeScreenshot(self, x, y, width = 150, height = 30):
self.width=width
self.height=height
window = Gdk.get_default_root_window()
#x, y, width, height = window.get_geometry()
#print("The size of the root window is {} x {}".format(width, height))
# get_from_drawable() was deprecated. See:
# https://developer.gnome.org/gtk3/stable/ch24s02.html#id-1.6.3.4.7
pixbufObj = Gdk.pixbuf_get_from_window(window, x, y, width, height)
height = pixbufObj.get_height()
width = pixbufObj.get_width()
image = Image.frombuffer("RGB", (width, height),
pixbufObj.get_pixels(), 'raw', 'RGB', 0, 1)
image = image.resize((width*20,height*20), Image.ANTIALIAS)
#image.save("saved.png")
print(pytesseract.image_to_string(image))
print("takenScreenshot:",x,y)
Когда я сохранил изображение в каталоге, все было в порядке (качество), и признание было хорошим.
Пробовал без Image.ANTIALIAS
- не имеет значения.
(Цель масштабирования по 20: Я попытался код, узнаваемым образом, сохраненный в директории, без масштабирования качества распознавания было плохо.)
ПРОБЛЕМА В ТОМ, ЧТО ИМИДЖЕ перекошен.
Я задавался вопросом, если 'Image.ANTIALIAS' делал разницу. Это не похоже на случай. Если бы я мог сделать хорошее предположение, я бы сказал, что масштабирование изображения 20x, вероятно, позволило расширить границы решений с минимальной потерей точности пикселей. Это означает, что при масштабировании изображения было проще ** Tesseract ** для _tell_ краев символов. – Quirk
Похоже, ваша ширина изображения неверна, поэтому ваше изображение выглядит искаженным. Дважды проверьте размеры изображений! – Mailerdaimon
@ Mailerdaimon вы можете быть более конкретным: как это может быть неправильно, где я сделал это неправильно? –