1

我想从图像中提取文本,我需要将其旋转 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。但是边界附近的像素在每种情况下都会丢失。有没有办法在不丢失像素的情况下进行这种旋转?

4

1 回答 1

3

您具有 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 函数(以及类似函数)适用于任何其他角度。

于 2014-11-24T13:05:45.740 回答