【发布时间】:2017-10-11 06:13:44
【问题描述】:
我有一个从 FITS 文件中读取的图像的 numpy 数组。我使用scipy.ndimage.interpolation.rotate 将它旋转了 N 度。然后我想弄清楚原始非旋转框架中的某个点 (x,y) 在旋转图像中的最终位置——即旋转的框架坐标 (x',y') 是什么?
这应该是一个非常简单的旋转矩阵问题,但是如果我执行通常的基于数学或编程的旋转方程,新的 (x',y') 不会以它们原来的位置结束。我怀疑这也与需要平移矩阵有关,因为 scipy 旋转函数基于原点 (0,0) 而不是图像数组的实际中心。
谁能告诉我如何获得旋转的框架(x',y')?例如,您可以使用
from scipy import misc
from scipy.ndimage import rotate
data_orig = misc.face()
data_rot = rotate(data_orig,66) # data array
x0,y0 = 580,300 # left eye; (xrot,yrot) should point there
附:以下两个相关问题的答案对我没有帮助:
【问题讨论】:
-
您能否提供一个(或多个)示例来测试我们的解决方案的正确性?
-
我刚刚添加了一个使用 scipy 自己的杂项浣熊脸和左眼原始 (x,y) 点的示例。旋转 66 度后框架中的新 (xrot,yrot) 应指向左眼。
标签: python numpy matplotlib scipy rotation