我正在生成一个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]:
为什么这些地标没有正确对齐?
暂无答案!
目前还没有任何答案,快来回答吧!