Transformaciones de imágenes geométricas mediante la multiplicación de matrices

Soy relativamente nuevo en el campo del procesamiento de imágenes y estoy un poco confundido con las transformaciones de imágenes. Así que entiendo que la idea básica detrás de la rotación/escalado/traducción/corte es multiplicar una matriz de 3x3 a las coordenadas homogéneas, lo que transforma los ejes de coordenadas a la configuración requerida. ¿Pero hacemos esta multiplicación de matrices para cada coordenada individualmente? Quiero decir, ¿no puedo expresar toda la imagen relevante como una matriz y de alguna manera tener el producto expresado como una sola operación de multiplicación de matrices?

Respuestas (1)

Seguro que puede. Si "despliega" su imagen y apila los píxeles en una matriz "horizontal" I R 3 × norte , dónde norte es el número de píxeles, entonces puede aplicar la transformación T R 3 × 3 con una sola multiplicación:

I ~ = T I .
Después de eso, tienes que "replegar" la matriz. I ~ en una imagen.

Un par de preocupaciones "logísticas". Primero, está transformando coordenadas , no valores de píxeles . En segundo lugar, no puede simplemente "mover" los valores de los píxeles para que coincidan con las nuevas coordenadas transformadas. Esto se debe a que habrá "agujeros" en la salida en lugares donde la transformación estiró las coordenadas. En cambio, lo que puedes hacer es volver a muestrear I ~ en una nueva imagen después de remodelar, usando la interpolación en los valores de la imagen original I .