Python:使用`skimage.transform.estimate_transform`获取所有NaN

时间:2018-03-06 18:28:12

标签: python transform scikit-image

我正在尝试使用skimage.transform.estimate_transform确定两个图像之间的转换,但我只是将NaNs作为转换参数,因此,所有NaN都用于转换后的图像。

这是我的代码:

from skimage import data
from skimage.transform import warp, estimate_transform
from scipy.ndimage.interpolation import zoom

# Get the image to transform
image = zoom(data.camera(),4)[-256:,:]

# Make the source and destination images
dst = np.array([range(i,i+2048) for i in range(256)])
src = np.tile(np.mean(dst, axis=0), (256,1))

# Estimate the transform between the two
tform = estimate_transform('affine', src, dst)

# Transform the input image
out = warp(image, tform)

但正如您所看到的,输出只是一个NaN的2D数组。任何人都可以解释出现了什么问题吗?谢谢!

更新:

我发现了一个名为imreg_dft的精彩软件包,它正是我正在寻找的。

1 个答案:

答案 0 :(得分:2)

estimate_transform将两组坐标(不是图像)作为输入,并尝试查找相应的映射。如果你想进行密集或稀疏注册,你需要尝试优化,比如,一个SimilarityTransform,或者提取特征并找到它们之间的转换(使用estimate_transform,例如。)。