具有相同逆变换的不同图像输出

时间:2019-04-23 10:54:12

标签: python-3.x image transformation scikit-image

在变换保持不变的同时,我得到了不同的图像输出

im=np.ones((128,128))*255
src = np.array([
    [56., 60.],
    [81., 60.],
    [64., 80.],
    [49., 100.],
    [78., 100.]], dtype=np.float32)
q=np.array([
    [58.166317,39.124466],
    [86.10652,26.917824],
    [106.29474,39.68392],
    [90.64203,72.82854],
    [115.17699,63.91104]],dtype=np.float32)
tt=trans.SimilarityTransform()
tt.estimate(q,src)
dst1 = trans.warp(im,tt.inverse,preserve_range=True,output_shape=(128,128))
tt.estimate(src,q)
dst = trans.warp(im,tt,preserve_range=True,output_shape=(128,128))

所以,您可以看到区别,这里是输出:

dst1 dst 他们为什么不一样?

UPD: 主要问题是“ estimate”函数,即估算(q,src)!=(estimate(src,q))^-1。仍然悬而未决的问题:为什么

1 个答案:

答案 0 :(得分:0)

为澄清这个问题:仿射变换是一组变换t:R2->R2,其中每个分量都有一个确定的逆元素(在我们的例子中是逆变换)。在我的问题中,似乎我们对相同的源点(两个逆元素)进行了不同转换。 实际上,任何地方都没有错误,只是误解了.inverse.estimate函数。 t.estimate(q, src).inverse !=t.estimate(src, q)t.estimate(q, src).inverse ==t.estimate(t(q),q)