【问题标题】:Scale and Centre image - Skimage缩放和中心图像 - Skimage
【发布时间】:2016-02-20 16:57:55
【问题描述】:

我正在尝试在 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)

【问题讨论】:

  • 我澄清了这个问题——我认为这与之前与绘图有关的问题不同

标签: python scikit-image


【解决方案1】:

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

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 2018-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    相关资源
    最近更新 更多