如何在Python中旋转关于特定像素的图像?我试图去旋转一组夜空图像。由于恒星围绕北极星旋转,我可以将北极星定义为旋转中心,并旋转每个图像以排列恒星。
答案 0 :(得分:2)
在phadej的回答中,图像上某点的旧坐标和新坐标之间的转换为affine transformation。
PIL(Python Imaging Library)有一个名为transform
的图像方法,它可以对图像进行仿射变换。
transform
的文档位于此page的底部。
答案 1 :(得分:0)
用一点点数学:如果每个图像的像素位置是向量a
,而北极星的位置是p
,那么新位置new_p
是
new_p = a + R * (a-p)
其中R是Rotation matrix。
会有问题,因为new_p
可能不是整数值位置向量。您
可以倒退。对于旋转图像的每个像素,应用上述变换的逆,
比从原始图像获得像素。因为它也可能不是整数,所以像wu-pixels中一样对相邻像素进行采样(点周围的点数可以用作采样权重)。