比例和中心图像 - Skimage

时间:2016-02-20 16:57:56

标签: python scikit-image

我正在尝试在Skimage中缩放一组图像。我正在使用以下代码,它运行良好,除了新的重新缩放图像(通过因子2)现在位于左上角(见下文)。我希望图像保留在原始中心。有没有一种简单的方法来实现这一目标?我的目标是保存图像的保存副本(例如jpg文件)以保持居中。我的问题与通过imshow显示图像无关。例如。当我保存下面的图像时 - 图像居中到左上角,这会导致我的代码中的后续步骤出现问题。

    ###Part of the code
    tform=skimage.transform.SimilarityTransform(scale=2, rotation=0,translation=(0, 0))
    rotated = skimage.transform.warp(test, tform)  
    plt.imshow(rotated)
    import scipy
    scipy.misc.imsave('rotated.jpg', rotated)

enter image description here

1 个答案:

答案 0 :(得分:0)

缩放本身被定义为仿射变换的一个子集。 仅用于缩放的仿射变换矩阵定义为

s_x, 0,   0
0,   s_y, 0
0,   0,   1

其中s_xs_y是相应维度中的缩放因子(相对于(0,0)处的原点定义)。如果您希望缩放图像,而不是相对于原点,而是另一个点,则首先翻译图像,使缩放中心位于原点,然后缩放,然后再移动图像。您只需将变换矩阵与比例矩阵进行矩阵乘法。我有一个类似的旋转问题,可以找到here。同样的原则适用于这个问题。结果是

s_x,  0, (-s_x*x)+x
0,  s_y, (-s_y*y)+y
0,    0,          1

其中xy是相应尺寸中图片大小的一半。 生成的矩阵可以与:

一起使用
skimage.transform.AffineTransform(matrix)