我正在研究图像识别系统,作为FCN的一部分,我需要转换图像。我正在使用python,Keras和tensorflow后端。
假设我有形状图像(512,512,3)和形状矩阵(512,512,2),图像中的每个像素都保存x和y坐标,这些像素应该位于变换图像中。请参阅下面的一个小频道。
img = [[0, 1, 2], coords = [[2, 1, 0], out = [[7, 6, 0],
[3, 4, 5], [1, 1, 0], [5, 4, 3],
[6, 7, 8]] [1, 0, 2]], [0, 0, 8]]
[[1, 1, 1],
[2, 1, 1],
[0, 0, 2]]
# Image img, channel 1 would yield output out given coordinates from coords
请注意,某些像素将映射到同一坐标。在示例中,我选择了像素"覆盖"最新的,但这根本不重要。但是,未写入的像素应为0。
我使用for循环进行了一个简单的实现,但是你预计它会超级慢并且也不可微分。有没有办法将这个问题矢量化?