Leptonica在旋转时裁剪图像

时间:2015-03-04 21:43:18

标签: rotation crop leptonica

PIX* returnRotatedImage(PIX* image, float theta)
{
    PIX* rotated = pixRotate(image, -theta, L_ROTATE_AREA_MAP, L_BRING_IN_BLACK, image->w, image->h);

    return rotated;
}

当我在图像上执行上述代码时,生成的图像边缘会被切掉。

示例:原始扫描,然后通过上述功能运行后将图像旋转〜89度。

我还没有10个声望,所以我无法嵌入图片,但这里有两张图片的链接:http://imgur.com/a/y7wAn

我需要它也适用于任意角度(不仅仅是接近90度的角度),所以不幸的是,提出的解决方案here将不起作用。

pixRotate函数的描述如下:

 *      (6) The dest can be expanded so that no image pixels
 *          are lost.  To invoke expansion, input the original
 *          width and height.  For repeated rotation, use of the
 *          original width and height allows the expansion to
 *          stop at the maximum required size, which is a square 
 *          with side = sqrt(w*w + h*h).
然而,它似乎是在旋转后扩展目的地,因此即使最终图像尺寸正确,像素也会丢失。如果我使用pixRotate(...,0,0)而不是pixRotate(...,w,h),我最终会在原始尺寸内旋转图像:http://i.imgur.com/YZSETl5.jpg

我是否错误地解释了pixRotate函数描述?我甚至想做什么?或者这可能是一个错误?

提前致谢。

0 个答案:

没有答案