pytorch仿射网格在图像和地标上的行为不同

vd2z7a6w  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(236)

我正在生成一个2x3仿射矩阵,并试图得到带有地标的变换图像(256x256)。地标只是x和y坐标的二维数组。这个仿射矩阵称为 affine_tensor 在我的代码中。
以下是我变换图像的方式:

affine_grid = F.affine_grid(affine_tensor, x.shape)
output_image = F.grid_sample(TF.rgb_to_grayscale(source_img), affine_grid, 
align_corners=False)

对于地标:

affine_grid = F.affine_grid(affine_tensor, torch.Size([1, 1, 256, 256]))
u_X = ((affine_grid[0, :, :, 1].cpu().numpy() + 1) / 2) * 255
u_Y = ((affine_grid[0, :, :, 0].cpu().numpy() + 1) / 2) * 255

ux = nd.map_coordinates(u_X, [source_scaled_landmarks_X, source_scaled_landmarks_Y], mode='nearest')
uy = nd.map_coordinates(u_Y, [source_scaled_landmarks_X, source_scaled_landmarks_Y], mode='nearest')

new_landmarks = np.stack((ux, uy), axis=1)

这就是我从《黑客帝国》中得到的
[1.5, -0.2, 0.0,
0.2, 1.0, 0.0]:

为什么这些地标没有正确对齐?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题