【问题标题】:Rotate an image about a specific pixel in python围绕python中的特定像素旋转图像
【发布时间】:2010-08-25 22:40:34
【问题描述】:

如何在 Python 中围绕特定像素旋转图像?我正在尝试对一组夜空图像进行反旋转。由于星星围绕北极星旋转,我可以将北极星定义为旋转中心并旋转每个图像以排列星星。

【问题讨论】:

  • 一旦你弄清楚如何围绕特定像素旋转图像,你如何以编程方式定义北极星的位置?
  • 北极星不移动(或移动很少),因此总是在同一个像素上。所以我可以在像素坐标中定义它的位置。

标签: python image astronomy image-rotation


【解决方案1】:

在 phadej 的回答中,图像上一个点的新旧坐标之间的转换是 affine transformation

PIL(Python 图像库)有一个名为transform 的图像方法,它可以执行图像的仿射变换。

transform 的文档位于此 page 的底部附近。

【讨论】:

    【解决方案2】:

    稍微算一下:如果每个图像的像素位置是矢量a,北极星的位置是p,那么新的位置new_p

    new_p = a + R * (a-p)
    

    其中 R 是 Rotation matrix

    会有问题,因为new_p 可能不是整数值位置向量。你 可以倒着做。对于旋转图像的每个像素,应用上述变换的逆变换, 比你会从原始图像中获得像素。因为它也可能不是整数,所以像wu-pixels那样对相邻像素进行采样(周围散布的点的数量可以作为采样权重)。

    【讨论】:

    • 我确信有一些库可以为你做这件事,但它是很好的编程练习。例如imagemagick 内置了这种“失真”:imagemagick.org/script/…
    猜你喜欢
    • 2023-04-07
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    • 2014-05-19
    • 2011-07-08
    • 1970-01-01
    • 2011-10-13
    相关资源
    最近更新 更多