Resumen de Fundamentos del Procesamiento de Imágenes

Fundamentos del Procesamiento de Imágenes: Guía Completa

Introducción

Las transformaciones geométricas son operaciones que modifican la posición, tamaño o perspectiva de una imagen mediante operaciones lineales y afines sobre las coordenadas de sus píxeles. En esta guía veremos rotaciones, escalado, traslaciones y transformaciones de perspectiva, con ejemplos prácticos y conceptos matemáticos claros.

Definición: Una transformacin geomtrica aplica una matriz de transformacin a los vectores de posicin de los pxeles para obtener nuevas coordenadas, produciendo una imagen transformada.

Conceptos bsicos

  • Punto imagen: coordenadas originales $(x,y)$ de un pxel.
  • Coordenadas homogneas: para operaciones afines y proyectivas usamos vectores $,\left[\begin{array}{c}x \ y \ 1\end{array}\right]$.
  • Matriz de transformacin: una matriz $A$ que multiplica la coordenada homognea para producir la nueva coordenada.

¿Por qu usar coordenadas homogneas?

  • Permiten combinar rotacin, escalado y traslacin en una sola multiplicacin de matrices.
  • Facilitan pasar de transformaciones afines a proyectivas (perspectiva).

Definicin: Las coordenadas homogneas de un punto $(x,y)$ son $\left[\begin{array}{c}x \ y \ 1\end{array}\right]$, y cualquier transformacin afn se puede representar por una matriz $3\times 3$ que acta sobre este vector.

Rotacin

Una rotacin alrededor de un eje en 2D se representa con la matriz $2\times 2$ o como $3\times 3$ en coordenadas homogneas.

  • Rotacin en 2D (ángulo $\theta$):

$$R(\theta) = \begin{bmatrix}\cos\theta & -\sin\theta \ \sin\theta & \cos\theta \end{bmatrix}$$

  • En coordenadas homogneas (manteniendo posible traslacin):

$$R_h(\theta) = \begin{bmatrix}\cos\theta & -\sin\theta & 0 \ \sin\theta & \cos\theta & 0 \ 0 & 0 & 1 \end{bmatrix}$$

Para rotar alrededor del centro de la imagen se combinan traslaciones y rotacin:

  1. Trasladar al origen (restar el centro): usar $T(-c_x,-c_y)$.
  2. Aplicar $R(\theta)$.
  3. Trasladar de regreso $T(c_x,c_y)$.

En forma matricial compuesta:

$$M = T(c_x,c_y);R_h(\theta);T(-c_x,-c_y)$$

Ejemplo prctico (pseudocdigo):

  • Usar OpenCV: $M = $ cv2.getRotationMatrix2D$(center,;angle,;scale)$ y luego cv2.warpAffine.

Nota: Implementar la rotacin manualmente requiere interpolacin bilineal o similar para evitar artefactos de muestreo.

💡 Věděli jste?Fun fact: ¿Sabas que las matrices de rotacin son ortogonales, es decir $R^T R = I$, y por tanto conservan distancias y ngulos?

Escalado (redimensionado)

El escalado cambia el tamao de la imagen multiplicando las coordenadas por factores en cada eje.

  • Escalado uniforme con factor $s$:

$$S(s) = \begin{bmatrix}s & 0 \ 0 & s\end{bmatrix}$$

  • Escalado no uniforme con factores $s_x$, $s_y$:

$$S(s_x,s_y) = \begin{bmatrix}s_x & 0 \ 0 & s_y\end{bmatrix}$$

En coordenadas homogneas:

$$S_h(s_x,s_y) = \begin{bmatrix}s_x & 0 & 0 \ 0 & s_y & 0 \ 0 & 0 & 1 \end{bmatrix}$$

Puntos clave:

  • Escalado por $s>1$ aumenta el tamao; $0<s<1$ reduce el tamao.
  • Al escalar es importante elegir un mtodo de interpolacin (nearest, bilinear, bicubic) para la reconstruccin de píxeles.

Ejemplo prctico:

  • OpenCV: cv2.resize(imagen, dsize=(w,h), interpolation=cv2.INTER_LINEAR).
💡 Věděli jste?Did you know que el escalado no uniforme puede introducir distorsiones que afecten la relacin de aspecto, por eso en aplicaciones de visin por computador se prefieren escalados que mantengan la relacin de aspecto original cuando sea posible?

Traslacin

La traslacin desplaza cada punto $(x,y)$ por un vector $(t_x,t_y)$.

  • En coordenadas homogneas la matriz de traslacin es:

$$T(t_x,t_y) = \begin{bmatrix}1 & 0 & t_x \ 0 & 1 & t_y \ 0 & 0 & 1 \end{bmatrix}$$

Aplicando $T$ a $\left[\begin{array}{c}x \ y \ 1\end{array}\right]$ se obtiene $\left[\begin{array}{c}x+t_x \ y+t_y \ 1\end{array}\right]$.

Implementacin prctica:

  • Implementacin manual: recorrer pxeles y colocar cada uno en la nueva posicin $x' = x + t_x$, $y' = y + t_y$.
  • OpenCV: mT = np.float32$([[1,
Zaregistruj se pro celé shrnutí
TarjetasTest de conocimientosResumenPodcastMapa mental
Empezar gratis

¿Ya tienes cuenta? Iniciar sesión

Transformaciones de imágenes

Klíčové pojmy: Las transformaciones usan coordenadas homogneas $\left[\begin{array}{c}x\\y\\1\end{array}\right]$ para combinar operaciones., Rotacin 2D: $R(\theta)=\begin{bmatrix}\cos\theta & -\sin\theta \\ \sin\theta & \cos\theta\end{bmatrix}$; en homogneas agregar tercera fila y columna., Escalar: $S(s_x,s_y)=\begin{bmatrix}s_x&0\\0&s_y\end{bmatrix}$; elegir interpolacin (nearest, bilinear, bicubic)., Traslacin: $T(t_x,t_y)=\begin{bmatrix}1&0&t_x\\0&1&t_y\\0&0&1\end{bmatrix}$; ajustar lienzo para evitar recortes., Para rotar alrededor del centro compone $T(c)\,R\,T(-c)$; el orden de matrices es crucial., Transformacin proyectiva $H$ tiene 8 grados de libertad y se aplica en homogneas: $p'=Hp$ y dividir por componente escala., Usar trazado inverso (inverse mapping) para evitar huecos y muestrear desde la imagen original., Combinar transformaciones se hace por multiplicacin matricial; trabajar en float32 antes de interpolar., Verificar bounding box y ampliar el lienzo antes de transformaciones que aumenten el rea visible., Fun facts: matrices de rotacin son ortogonales; una homografa necesita al menos 4 pares de puntos no colineales.

## Introducción Las transformaciones geométricas son operaciones que modifican la posición, tamaño o perspectiva de una imagen mediante operaciones lineales y afines sobre las coordenadas de sus píxeles. En esta guía veremos rotaciones, escalado, traslaciones y transformaciones de perspectiva, con ejemplos prácticos y conceptos matemáticos claros. > Definición: Una transformacin geomtrica aplica una matriz de transformacin a los vectores de posicin de los pxeles para obtener nuevas coordenadas, produciendo una imagen transformada. ## Conceptos bsicos - Punto imagen: coordenadas originales $(x,y)$ de un pxel. - Coordenadas homogneas: para operaciones afines y proyectivas usamos vectores $\,\left[\begin{array}{c}x \\ y \\ 1\end{array}\right]$. - Matriz de transformacin: una matriz $A$ que multiplica la coordenada homognea para producir la nueva coordenada. ### ¿Por qu usar coordenadas homogneas? - Permiten combinar rotacin, escalado y traslacin en una sola multiplicacin de matrices. - Facilitan pasar de transformaciones afines a proyectivas (perspectiva). > Definicin: Las coordenadas homogneas de un punto $(x,y)$ son $\left[\begin{array}{c}x \\ y \\ 1\end{array}\right]$, y cualquier transformacin afn se puede representar por una matriz $3\times 3$ que acta sobre este vector. ## Rotacin Una rotacin alrededor de un eje en 2D se representa con la matriz $2\times 2$ o como $3\times 3$ en coordenadas homogneas. - Rotacin en 2D (ángulo $\theta$): $$R(\theta) = \begin{bmatrix}\cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix}$$ - En coordenadas homogneas (manteniendo posible traslacin): $$R_h(\theta) = \begin{bmatrix}\cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix}$$ Para rotar alrededor del centro de la imagen se combinan traslaciones y rotacin: 1. Trasladar al origen (restar el centro): usar $T(-c_x,-c_y)$. 2. Aplicar $R(\theta)$. 3. Trasladar de regreso $T(c_x,c_y)$. En forma matricial compuesta: $$M = T(c_x,c_y)\;R_h(\theta)\;T(-c_x,-c_y)$$ Ejemplo prctico (pseudocdigo): - Usar OpenCV: $M = $ cv2.getRotationMatrix2D$(center,\;angle,\;scale)$ y luego cv2.warpAffine. > Nota: Implementar la rotacin manualmente requiere interpolacin bilineal o similar para evitar artefactos de muestreo. Fun fact: ¿Sabas que las matrices de rotacin son ortogonales, es decir $R^T R = I$, y por tanto conservan distancias y ngulos? ## Escalado (redimensionado) El escalado cambia el tamao de la imagen multiplicando las coordenadas por factores en cada eje. - Escalado uniforme con factor $s$: $$S(s) = \begin{bmatrix}s & 0 \\ 0 & s\end{bmatrix}$$ - Escalado no uniforme con factores $s_x$, $s_y$: $$S(s_x,s_y) = \begin{bmatrix}s_x & 0 \\ 0 & s_y\end{bmatrix}$$ En coordenadas homogneas: $$S_h(s_x,s_y) = \begin{bmatrix}s_x & 0 & 0 \\ 0 & s_y & 0 \\ 0 & 0 & 1 \end{bmatrix}$$ Puntos clave: - Escalado por $s>1$ aumenta el tamao; $0<s<1$ reduce el tamao. - Al escalar es importante elegir un mtodo de interpolacin (nearest, bilinear, bicubic) para la reconstruccin de píxeles. Ejemplo prctico: - OpenCV: cv2.resize(imagen, dsize=(w,h), interpolation=cv2.INTER_LINEAR). Did you know que el escalado no uniforme puede introducir distorsiones que afecten la relacin de aspecto, por eso en aplicaciones de visin por computador se prefieren escalados que mantengan la relacin de aspecto original cuando sea posible? ## Traslacin La traslacin desplaza cada punto $(x,y)$ por un vector $(t_x,t_y)$. - En coordenadas homogneas la matriz de traslacin es: $$T(t_x,t_y) = \begin{bmatrix}1 & 0 & t_x \\ 0 & 1 & t_y \\ 0 & 0 & 1 \end{bmatrix}$$ Aplicando $T$ a $\left[\begin{array}{c}x \\ y \\ 1\end{array}\right]$ se obtiene $\left[\begin{array}{c}x+t_x \\ y+t_y \\ 1\end{array}\right]$. Implementacin prctica: - Implementacin manual: recorrer pxeles y colocar cada uno en la nueva posicin $x' = x + t_x$, $y' = y + t_y$. - OpenCV: mT = np.float32$([[1,