Пиксели изображения теряются при вращении с использованием лептоники

Я хочу извлечь текст из изображения, для которого мне нужно повернуть его с шагом в 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 (и те, и другие) предназначены для любого другого угла.

Другие вопросы по тегам