Transformations between images and Look Up Table

Figure 1.8: Direct and inverse transformation between images.
Image fig_lut

Being a somewhat delicate topic that could lead to some ambiguities, it is advisable to dedicate a section to how transformations between images are practically applied.

Let $f$ be a generic bijective transformation

\begin{displaymath}
f : \mathbb{R}^{2} \to \mathbb{R}^{2}
\end{displaymath} (1.87)

that transforms the point $(u,v)^{\top}$ belonging to the source image into the point $(u',v')^{\top}$ of the destination image, that is
\begin{displaymath}
(u',v')^{\top} = f(u,v)
\end{displaymath} (1.88)

This transformation will be called Forward Warping.

Since images are not continuous but quantized into pixels, the transformation $f$ cannot be used directly in real applications, as it may either leave gaps in the second image or project the same point of the first image multiple times. For these reasons, when an image is processed, we always work with the inverse transformation $f^{-1}$ which, for every point of the destination image $(u',v')^{\top}$, returns the point of the source image $(u,v)$ from which to extract the color, that is:

\begin{displaymath}
(u,v)^{\top} = f^{-1}(u',v')
\end{displaymath} (1.89)

This transformation will be referred to as Inverse Warping.

It is clear that the source image is also composed of pixels, but the knowledge of the point $(u,v)^{\top}$ allows for the straightforward use of techniques such as linear interpolation to derive the pixel value.

If the function $f^{-1}$ is very complicated and the same transformation needs to be applied to multiple images, to save computational time, one can create a Look Up Table (LUT) of elements $(u,v)^{\top}$ as large as the destination image, where the result of the transformation (1.89) is stored for each element.

Paolo medici
2025-10-22