在python中围绕特定像素旋转图像
如何在Python中围绕特定像素旋转图像?我正在尝试去旋转夜空的一组图像。由于恒星围绕北极星旋转,我可以将北极星定义为旋转中心,并旋转每个图像来排列恒星。通过一点数学:如果每个图像的像素位置是矢量在python中围绕特定像素旋转图像,python,image,astronomy,image-rotation,Python,Image,Astronomy,Image Rotation,如何在Python中围绕特定像素旋转图像?我正在尝试去旋转夜空的一组图像。由于恒星围绕北极星旋转,我可以将北极星定义为旋转中心,并旋转每个图像来排列恒星。通过一点数学:如果每个图像的像素位置是矢量a,北极星的位置是p,那么新位置new\p就是 new_p = a + R * (a-p) R在哪里 这会有问题,因为new\u p可能不是整数值位置向量。你 我可以倒着做。对于旋转图像的每个像素,应用上述变换的逆, 然后从原始图像中获取像素。因为它也可能不是整数,所以对相邻像素进行采样,如中所示(分
a
,北极星的位置是p
,那么新位置new\p
就是
new_p = a + R * (a-p)
R在哪里
这会有问题,因为new\u p
可能不是整数值位置向量。你
我可以倒着做。对于旋转图像的每个像素,应用上述变换的逆,
然后从原始图像中获取像素。因为它也可能不是整数,所以对相邻像素进行采样,如中所示(分散的点的数量可以用作采样权重)。在phadej的回答中,图像上点的新旧坐标之间的转换是一个简单的过程 (Python Imaging Library)有一个名为
transform
的图像方法,可以对图像执行仿射变换
transform
的文档就在这篇文章的底部。一旦你知道如何围绕一个特定的像素旋转图像,你如何通过编程定义北极星的位置?北极星不移动(或移动很少),因此总是在同一个像素上。所以我可以用像素坐标来定义它的位置。我肯定有一些库可以帮你做,但这是很好的编程练习。例如,imagemagick
内置了这种“失真”: