在 Scikit-image [Python] 中移动图像

Posted

技术标签:

【中文标题】在 Scikit-image [Python] 中移动图像【英文标题】:Shift image in Scikit-image [Python] 【发布时间】:2017-12-24 14:31:11 【问题描述】:

我希望有这样的功能,但它不存在:

from skimage.transform import shift

shifted = shift(image, translation=(15.2, 35.7),
                mode='wrap', preserve_range=True)

你能帮我写一个使用 skimage.transform.AffineTransform 的函数吗?

from skimage.transform import AffineTransform

def shift(image, translation):
    transform = AffineTransform(translation=translation)
    # How to do it???
    shifted = transform(image)   # Does not work, documentation for usage present
                                 # of this class is not present...
    return shifted

然而,scipy.ndimage.interpolation.shift 功能可以满足我的需求,它非常慢 - 甚至比旋转慢 10-20 倍。 numpy.roll 也不支持,因为它不支持小数转换。


文档有点意思: http://scikit-image.org/docs/stable/api/skimage.transform.html#skimage.transform.AffineTransform

【问题讨论】:

【参考方案1】:

看起来这很有效。但是,如果有人知道更简单、更快捷的方法 - 请告诉我。

from skimage.transform import AffineTransform, warp

def shift(image, vector):
    transform = AffineTransform(translation=vector)
    shifted = warp(image, transform, mode='wrap', preserve_range=True)

    shifted = shifted.astype(image.dtype)

【讨论】:

以上是关于在 Scikit-image [Python] 中移动图像的主要内容,如果未能解决你的问题,请参考以下文章

scikit-image 中用于图像分割的阈值算法

Python: scikit-image binary descriptor

Python: scikit-image Blob detection

Python scikit-image 拉取请求 Travis CI Python 2.7 构建失败

为 Scikit-image 构建自定义 AWS Lambda 层

scikit-image:遥感图像geotiff格式转mat格式