Python变换函数不会翻译吗?

2024-06-28 23:37:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个图像(另存为numpy数组),我想用一个转换矩阵来转换它。 假设transformationatrix是:

[[  0.99729046  -0.07356456  22.57990962]
 [  0.07356456   0.99729046 -12.99879896]
 [  0.           0.           1.        ]]

我想通过`scipy.ndimage.interpolation.插值. 在

image = affine_transform(image, matrix, mode="reflect")

如果我只是旋转它:

^{pr2}$

它工作得很好,但是当我想旋转它和翻译它,或者只是翻译它,结果看起来很奇怪。我不知道为什么

原始图像: http://img408.imageshack.us/img408/9373/eiffel.jpg

转换图像: http://img861.imageshack.us/img861/8971/blatm.jpg


Tags: 图像imagenumpyhttp矩阵scipy数组jpg
1条回答
网友
1楼 · 发布于 2024-06-28 23:37:47

我认为ndimage实际上并不处理彩色图像。它将数组的最后(3,)维视为第三个空间维。在

你给出的矩阵实际上只是旋转矩阵,而不是仿射矩阵。文件似乎不清楚这一点。您应该通过offset参数传入移位向量。偏移向量还包括作为第三元素的“颜色偏移”。在

这同样适用于Travis Vaught上面的评论中的shift方法。正确的语法是ndimage.shift(img, (10.0, 10.0, 0.0), mode="wrap")-当然,除非你想做一些有趣的颜色转换。在

原则上,你可以告诉ndimage不要移动等。图像沿着颜色轴移动,如上所述,但是单独操作每个颜色元素应该快一点。在

相关问题 更多 >