warp.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:inverse-compositional-STN 作者: ericlin79119 项目源码 文件源码
def transformImage(opt,image,pMtrx):
    refMtrx = util.toTorch(opt.refMtrx)
    refMtrx = refMtrx.repeat(opt.batchSize,1,1)
    transMtrx = refMtrx.matmul(pMtrx)
    # warp the canonical coordinates
    X,Y = np.meshgrid(np.linspace(-1,1,opt.W),np.linspace(-1,1,opt.H))
    X,Y = X.flatten(),Y.flatten()
    XYhom = np.stack([X,Y,np.ones_like(X)],axis=1).T
    XYhom = np.tile(XYhom,[opt.batchSize,1,1]).astype(np.float32)
    XYhom = util.toTorch(XYhom)
    XYwarpHom = transMtrx.matmul(XYhom)
    XwarpHom,YwarpHom,ZwarpHom = torch.unbind(XYwarpHom,dim=1)
    Xwarp = (XwarpHom/(ZwarpHom+1e-8)).view(opt.batchSize,opt.H,opt.W)
    Ywarp = (YwarpHom/(ZwarpHom+1e-8)).view(opt.batchSize,opt.H,opt.W)
    grid = torch.stack([Xwarp,Ywarp],dim=-1)
    # sampling with bilinear interpolation
    imageWarp = torch.nn.functional.grid_sample(image,grid,mode="bilinear")
    return imageWarp
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号