使用leptonica旋转时图像像素丢失

时间:2014-07-04 11:11:17

标签: leptonica

我想从图像中提取文本,我需要以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 个答案:

答案 0 :(得分: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函数(以及相似的函数)适用于任何其他角度。