Python中有没有类似于Matlab的imtransform函数的功能?

2 投票
2 回答
2134 浏览
提问于 2025-04-16 12:09

文档链接

我正在尝试把一些Matlab代码转换成Python。我不太确定这些代码具体做了什么,但如果我理解没错的话,它是把一张图片转换成另一张图片,图片中的像素就是这些转换的参数。

在Python中,有没有类似的东西可以用,比如PIL、numpy或者其他库?我觉得这个方法可能比较复杂,所以目前我并不指望自己能做到。

2 个回答

0

Python图像库有一个叫做transform的功能,它需要一个矩阵作为输入。我不太确定它和Matlab的用法是不是完全一样:

im.transform(size, AFFINE, data) => image

im.transform(size, AFFINE, data, filter) => image

这个功能会对图像进行一个仿射变换,并把结果放到一个新的图像中,大小是你指定的。

这里的data是一个包含六个数字的元组(a, b, c, d, e, f),它代表了仿射变换矩阵的前两行。对于输出图像中的每一个像素(x, y),新的像素值是从输入图像中一个位置(a x + b y + c, d x + e y + f)获取的,这个位置会四舍五入到最近的像素。

这个功能可以用来缩放、平移、旋转和剪切原始图像。

1

你可以查看一下 scipy.ndimage。可能没有完全一样的功能来替代 imtransform,但是有一些通用的变换功能是可以使用的。

撰写回答