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函数描述?我甚至想做什么?或者这可能是一个错误?
提前致谢。