为什么skimage旋转函数会接收插值方法作为参数?

时间:2018-11-07 19:14:28

标签: python rotation scikit-image

使用skimage rotate函数,我注意到它具有一个可选的插值(顺序)参数,但是我不明白为什么。
该文档没有说明其用法,我认为旋转图像以简单的索引移位结束。
这是一张图片,通过双侧和NN插值旋转了30度,不能说当然有区别。
enter image description here enter image description here

2 个答案:

答案 0 :(得分:2)

要以角度theta旋转图像,必须将每个像素P =(x,y)映射到新点P'=(x',y')。 P如何映射到P'取决于旋转轴以及theta以度或弧度为单位,但这将类似于:

  • x'= x * cos(theta)-y * sin(theta)
  • y'= x * sin(θ)+ y * cos(θ)

问题在于这会导致非整数值,这就是插值的来源。 要在旋转后的图像中填充一个像素(x,y),将需要使用原始图像的非整数坐标的像素,插值会使用附近的点来近似此非整数点。

答案 1 :(得分:0)

您正在做的是使图像变形。

例如,假设您要旋转上面的图像,但要确保没有旋转的图片超出范围。您可能希望旋转,但也要扭曲轴,以便可以看到整个图像。

有关详细信息和其他用例,请参见http://scikit-image.org/docs/dev/api/skimage.transform.html#skimage.transform.warp