Пиксели изображения теряются при вращении с использованием лептоники
Я хочу извлечь текст из изображения, для которого мне нужно повернуть его с шагом в 90 градусов. Когда я поворачиваю изображение, используя
pixRotate(image, deg2rad * angle, L_ROTATE_AREA_MAP, L_BRING_IN_BLACK, 0, 0)
некоторые пиксели сверху и снизу теряются. Варианты, которые я пробовал
pixRotate(image, deg2rad * angle, L_ROTATE_AREA_MAP, L_BRING_IN_BLACK, w, h)
а также с L_ROTATE_SHEAR, L_ROTATE_SAMPLING. Однако пиксели возле границы теряются в каждом случае. Есть ли способ сделать это вращение без потери пикселей?
1 ответ
У вас есть определенные функции для поворота на 90°, 180° и 270°, которые определены в rotateorth.c, как подробно описано в документации:
Top-level rotation by multiples of 90 degrees: PIX *pixRotateOrth()
180-degree rotation: PIX *pixRotate180()
90-degree rotation (both directions): PIX *pixRotate90()
Left-right flip: PIX *pixFlipLR()
Top-bottom flip: PIX *pixFlipTB()
Для этих поворотов (90° или 180°) вы должны учитывать только функции, перечисленные выше, так как они не приближаются к положению пикселя в целевом изображении (и они намного быстрее), поэтому вы не потеряете пиксели. Функция pixRotate (и те, и другие) предназначены для любого другого угла.