在 TensorFlow2 中对图像应用仿射变换

Apply affine transformations to images in TensorFlow2

我正在尝试将表示为张量 (batch_size, 3, 3) 的仿射变换应用于包含一批图像(batch_size、通道、高度、宽度)的张量在 TensorFlow 2 中。

可以使用 tfa.image.transform (https://www.tensorflow.org/addons/api_docs/python/tfa/image/transform) 对张量应用一般变换,但这需要投影变换而不是仿射变换作为输入。投影变换是表示变换的 8 维向量,而不是 3 X 3 矩阵。在 Tensorflow 1 中,这很容易通过使用 tf.contrib.image.matrices_to_flat_transforms 将仿射变换转换为投影变换来解决。但是,此功能在 Tensorflow 2 中不再可用,据我所知,tfa 中没有新功能可以替代此功能。

所以我的问题是:如果我有一个仿射变换张量和一个包含一批图像的张量,我如何将变换应用于 TensorFlow 2 中的图像?

事实证明,TensorFlow 2 中仍然存在必要的功能,但网站 (https://www.tensorflow.org/addons/api_docs/python/tfa/image/) 上的文档似乎不完整。该函数可用为:tensorflow_addons.image.transform_ops.matrices_to_flat_transforms