Principio de transformación afín y su resumen de conocimientos de implementación OpenCV-Python

☞ ░LaoYuanPython Blog Directory mensaje: https://blog.csdn.net/LaoYuanPython

1. El concepto y el tipo de transformación afín

La transformación geométrica de la imagen también se denomina transformación del espacio de la imagen, que es la base de varios algoritmos de procesamiento de imágenes. Es un método de procesamiento para la transformación geométrica espacial de píxeles de imagen sin cambiar el contenido de la imagen. Asigna la posición de las coordenadas en una imagen a una nueva posición de las coordenadas en otra imagen, y su esencia es cambiar la posición espacial del píxel y estimar el valor del píxel en la nueva posición espacial.

La transformación geométrica de una imagen incluye la transformación de perspectiva y la transformación afín. La transformación de perspectiva también se denomina transformación de proyección, transformación de proyección y mapeo de proyección. La transformación de perspectiva consiste en proyectar la imagen en un nuevo plano de visualización, que es bidimensional (x, y ) a tridimensional (X, Y, Z), y luego a otro mapeo espacial bidimensional (x ', y').

La transformación afín también se denomina mapeo afín de imágenes. Se puede considerar como un caso especial de transformación de perspectiva. Es un subconjunto de la transformación de perspectiva. La transformación afín es un mapeo del espacio bidimensional a sí mismo. Significa que en geometría, un vector El espacio sufre una transformación lineal seguida de una traslación, y se transforma en otro espacio vectorial, es decir, la transformación afín de la imagen es igual a la combinación de la transformación lineal y la traducción de la imagen.

La transformación afín incluye traslación (traslación), rotación (rotación), escalado (escalado), cortante (cortante) cuatro tipos:

La combinación de traslación y rotación no cambia el tamaño y la forma de la imagen, solo se cambia la posición (transformación de traslación) y la orientación (transformación de rotación) de la imagen, lo que se denomina transformación euclidiana o transformación rígida. La transformación es la más general La transformación y la
escala se dividen en escala uniforme y escala no uniforme. Si el factor de escala es negativo, se superpondrá y se invertirá (reflexión, también traducida como reflexión, espejo). Por lo tanto, la inversión se puede considerar como una escala especial.
Euclidiana La transformación y el escalado proporcional mantienen la apariencia de la imagen sin distorsión. Por lo tanto, la combinación de los dos se llama transformación de similitud. Cortar incorrectamente
es mantener un cierto valor de coordenadas de cada punto en el gráfico sin cambios. Y el otro valor de coordenadas se transforma linealmente con respecto al valor constante de las coordenadas. El eje cuyas coordenadas no cambian se denomina eje dependiente y los otros ejes de coordenadas se denominan eje de dirección. Los errores de corte se dividen en errores de corte horizontales y verticales.

En segundo lugar, la matriz de transformación afín básica

En " https://blog.csdn.net/LaoYuanPython/article/details/113788380 Principio de transformación afín de la imagen 3: Tipo de transformación afín y explicación detallada de la matriz de transformación ", que incluye traducción (traducción), rotación (rotación), zoom (escala) , cortante (cortante) cuatro tipos de matriz de transformación de transformación afín.

  • Matriz de transformación básica afín de transformación de traducción
    Inserte la descripción de la imagen aquí

  • Matriz de transformación afín básica de transformación de rotación (θ es el ángulo de rotación en el sentido de las agujas del reloj)
    Inserte la descripción de la imagen aquí

  • Matriz de transformación afín básica de corte horizontal incorrecto (α es ángulo de corte incorrecto)
    Inserte la descripción de la imagen aquí

  • Matriz de transformación afín básica para cortes verticales incorrectos (β es ángulo de corte incorrecto)
    Inserte la descripción de la imagen aquí

  • Matriz de transformación básica afín de transformación de escala (kx y ky se distribuyen como factor de escala horizontal y factor de escala vertical)
    Inserte la descripción de la imagen aquí

  • La matriz afín introducida anteriormente no es en realidad la matriz afín en el nombre estándar, sino una especie de 3*3matriz de homografía utilizada para la transformación de perspectiva entre dos planos . La matriz afín real es 2*3una matriz, que es mejor que la homografía. La matriz es una menos fila, y la matriz utilizada por la función warpAffine en OpenCV es 2*3la misma matriz.

3. Artículo de resumen de Old Ape sobre la transformación afín

El siguiente es un resumen de los resultados del aprendizaje del viejo simio durante este período. La lectura de estos artículos puede permitir a las personas que no tienen una base en la transformación afín o incluso en el álgebra lineal comprender rápidamente el principio de la transformación afín, el proceso de transformación afín y la capacidad de OpenCV-Python para soportar la transformación afín y la aplicación.
Nota : Los artículos relacionados con el principio del asterisco anterior son artículos de columna pagados:

  1. * https: //blog.csdn.net/LaoYuanPython/article/details/113743213 Principio de transformación afín de imágenes 1: Explicación detallada de coordenadas homogéneas : Este artículo comienza con el espacio europeo básico, el espacio de proyección, las coordenadas cartesianas, los vectores, las matrices y lineal Comencemos con la introducción del espacio, comenzando con la representación de puntos y vectores en el espacio vectorial para explicar el proceso de introducción del concepto de coordenadas homogéneas e introducir el papel de las coordenadas homogéneas.

  2. * https: //blog.csdn.net/LaoYuanPython/article/details/113804210 Principio de transformación afín de imagen 2: transformación de matriz, transformación lineal y transformación lineal de imagen Matriz : la transformación lineal de imagen es un subconjunto de la transformación afín, incluida la imagen Comparada con la imagen original, el origen de coordenadas de la imagen transformada linealmente permanece sin cambios, la transformación lineal es una línea recta o el origen, y la línea paralela sigue siendo paralela después de la transformación. Todas las transformaciones lineales de imágenes se pueden representar mediante el producto de la matriz de transformación de la imagen y el vector espacial del plano de la imagen. Este artículo analiza el método de representación algebraica de la transformación lineal de la imagen y la matriz de transformación correspondiente.

  3. * https: //blog.csdn.net/LaoYuanPython/article/details/113788380 Principio de transformación afín de imágenes 3: tipos de transformación afines y explicación detallada de la matriz de transformación : Este artículo presenta los tipos y relaciones de la transformación afín y la matriz de transformación afín, La transformación afín básica incluye traslación, rotación, escala y corte incorrecto, y la duplicación puede considerarse una escala especial. En la práctica, la transformación afín de una imagen general es la combinación de superposición de traslación, rotación, escalado y corte transversal. Cada vez que se superpone un proceso, se realiza una matriz de transformación afín y una multiplicación de coordenadas homogénea, y el proceso se vuelve a realizar para multiplicar la transformación correspondiente Matriz.

  4. * https: //blog.csdn.net/LaoYuanPython/article/details/113841635 Principio de transformación afín de imagen 4: Transformación de combinación y matriz de transformación correspondiente : Este artículo presenta el concepto de transformación afín de combinación (también llamada compuesta), proceso de transformación y matriz de transformación, y la transformación de combinación que gira alrededor del punto especificado, y la transformación de combinación que especifica la línea como eje dependiente introduce el proceso de transformación y la composición de la matriz de transformación en detalle, lo que ayuda a comprender el concepto y el proceso de procesamiento de transformacion afin.

  5. * https: //blog.csdn.net/LaoYuanPython/article/details/113879385 Principio de transformación afín de imagen 5: Implementación OpenCV-Python de matriz de transformación combinada : esta sección utiliza transformación afín combinada que gira en el sentido de las agujas del reloj alrededor del centro de la imagen y toma el segmento de línea que comienza desde el punto central de la imagen y el eje x en un ángulo de 30 ° como una transformación afín combinada dependiente del eje de corte circular incorrecto como ejemplo, la implementación OpenCV-Python de los dos se presenta en detalle. Mediante la introducción de casos relacionados, tendremos una comprensión más profunda del principio de transformación afín presentado en las 4 secciones anteriores.

  6. https://blog.csdn.net/LaoYuanPython/article/details/113832562 Procesamiento de imágenes OpenCV-Python: explicación detallada de la transformación afín : Esta sección presenta el concepto, el tipo, la matriz de transformación afín básica, OpenCV-Python y las principales funciones y gramáticas relacionados con la transformación afín, y se proporcionan ejemplos de rotación de imagen realizada de dos formas diferentes y tres puntos opcionales para ampliar el diagrama circular del estator. La lectura de contenido relacionado puede ayudar a todos a comprender el concepto de transformación afín y el método de implementación de OpenCV-Python de transformación afín.

  7. https://blog.csdn.net/LaoYuanPython/article/details/113924512 Transformación afín OpenCV: un caso de getAffineTransform : esta sección presenta la función getAffineTransform de OpenCV-Python y especifica el resultado eligiendo tres puntos en la imagen La parte superior esquina izquierda, esquina inferior izquierda y esquina inferior derecha de la imagen, para darse cuenta de que las subimágenes en el rango de tres puntos de la imagen original se amplían como un todo mediante una transformación afín.

  8. https://blog.csdn.net/LaoYuanPython/article/details/113866576 Errores encontrados en el desarrollo de la transformación afín OpenCV-Python : este artículo presenta los errores encontrados por el viejo simio en el desarrollo de la transformación afín utilizando OpenCV-Python, Estos problemas pueden ser encontrados por todos más o menos, estos problemas involucran la comprensión de conocimientos básicos, el pozo de la información oficial, etc.

4. Materiales de referencia en línea utilizados por el viejo simio

Durante el proceso de aprendizaje, Lao Yuan consultó muchos materiales. Los siguientes son algunos artículos que Lao Yuan cree que son más valiosos:

  1. Comprensión de la transformación afín y su matriz de transformación
  2. [Procesamiento de imágenes Python] Treinta y seis. Transformación geométrica de la imagen OpenCV 4D explicación detallada (rotación de zoom de traducción, perspectiva afín al espejo)
  3. Transformación lineal
  4. Álgebra lineal (1) El origen de la matriz y la multiplicación de matrices
  5. Transformación de imagen básica: transformación lineal, transformación afín, transformación de proyección
  6. Transformación afín y transformación de proyección
  7. [Visión por computadora] Transformación de homografía de imagen / proyección / afín / perspectiva
  8. ¿Cómo explicar el concepto de "transformación afín" de una manera popular?
  9. Transformación afín y transformación de perspectiva en el procesamiento de imágenes
  10. Dos métodos de transformación de imágenes python + opencv, cv2.warpAffine y cv2.warpPerspective
  11. Ilustración gráfica de la fórmula de transformación de rotación del sistema de coordenadas
  12. Transformación (2D y 3D)
  13. Transformación afín y transformación de perspectiva
  14. Transformación de la base de la esencia de la matriz y transformación lineal
  15. Gráficos 3D: transformación matricial y lineal

Cinco, posdata

Cuando comencé a aprender la transformación afín de OpenCV-Python durante el día de Año Nuevo de este año, estaba confundido cuando vi por primera vez las fórmulas relevantes. Le devolví todo el álgebra lineal que había estudiado al profesor en la universidad y olvidé todos los conceptos básicos. Hice lo mejor que pude para encontrar el libro
Inserte la descripción de la imagen aquí
de texto de álgebra lineal de la era universitaria: lo revisé desde el principio y consulté varios materiales. Después de más de 40 días de revisión y estudio, finalmente integré el concepto y principio de transformación afín y la implementación de OpenCV-Python, y lo resumió. Se han publicado muchas publicaciones de blog para garantizar que aquellos que no tienen una base en álgebra lineal puedan entender, y definitivamente ayudarán a los necesitados.

Para obtener más información sobre el procesamiento de imágenes, consulte la columna " Procesamiento de imágenes y gráficos OpenCV-Python https://blog.csdn.net/laoyuanpython/category_9979286.html " y " https://blog.csdn.net/laoyuanpython/category_10581071 Artículos relacionados con .html OpenCV -Python Beginners Difficult Questions Collection ".

Para obtener conocimientos matemáticos más básicos sobre el procesamiento de imágenes, consulte la columna " Fundación matemática de inteligencia artificial https://blog.csdn.net/laoyuanpython/category_10382948.html "

Bloguear no es fácil, por favor apoye:

Si ha ganado algo al leer este artículo, por favor, haga clic en Me gusta, comente, marque como favorito, ¡gracias por su apoyo!

Columna pagada sobre el viejo simio

  1. La columna de pago " https://blog.csdn.net/laoyuanpython/category_9607725.html Uso de PyQt para desarrollar aplicaciones de interfaz gráfica Python" presenta específicamente los tutoriales básicos para el desarrollo de la interfaz gráfica PyQt basada en Python. El directorio del artículo correspondiente es " https: //blog.csdn .net / LaoYuanPython / article / details / 107580932 Utilice PyQt para desarrollar una interfaz gráfica del directorio de columnas de la aplicación Python ";
  2. La columna de pago " https://blog.csdn.net/laoyuanpython/category_10232926.html columna de desarrollo de audio y video de moviepy ) detalla los métodos relacionados de procesamiento de síntesis y edición de audio y video de moviepy y el uso de métodos relacionados para procesar la edición y escenas de síntesis, correspondientes al artículo El directorio es " https://blog.csdn.net/LaoYuanPython/article/details/107574583 directorio de artículos de columna de desarrollo de audio y video de moviepy ";
  3. La columna de pago " https://blog.csdn.net/laoyuanpython/category_10581071.html Preguntas difíciles de OpenCV-Python para principiantes " es " https://blog.csdn.net/laoyuanpython/category_9979286.html Gráficos e imagen de OpenCV-Python El procesamiento "La columna complementaria" es una integración de las percepciones personales del autor de algunos de los problemas encontrados en el aprendizaje de gráficos y procesamiento de imágenes OpenCV-Python. La información relevante es básicamente el resultado de la investigación repetida del viejo simio, que ayuda a OpenCV -Principiantes de Python a más profundidad Para comprender OpenCV, el directorio de artículos correspondiente es " https://blog.csdn.net/LaoYuanPython/article/details/109713407 OpenCV-Python Beginners Difficult Question Collection Column Directory "
  4. La columna de pago " https://blog.csdn.net/laoyuanpython/category_10762553.html Introducción al rastreador de Python" presenta el contenido del desarrollo del rastreador desde la perspectiva de un desarrollador de aplicaciones para Internet, incluido el conocimiento básico de la introducción del rastreador, y rastreo Toma información de artículos de CSDN, información de blogger, como artículos, comentarios y otro contenido real.

Las dos primeras columnas son adecuadas para lectores novatos que tienen cierta base de Python pero no tienen conocimientos relevantes. La tercera columna, por favor combine " https://blog.csdn.net/laoyuanpython/category_9979286.html Procesamiento de imágenes y gráficos OpenCV-Python " Aprendiendo a usar.

Para aquellos que carecen de la base de Python, pueden aprender Python desde cero a través de la columna gratuita de Lao Yuan " https://blog.csdn.net/laoyuanpython/category_9831699.html columna: directorio de tutoriales básicos de Python ).

Si está interesado y dispuesto a apoyar a los lectores de Old Ape, bienvenido a comprar la columna paga.

¡Aprende Python del viejo simio!

Vaya al directorio de publicaciones del blog de LaoYuanPython https://blog.csdn.net/LaoYuanPython .

Supongo que te gusta

Origin blog.csdn.net/LaoYuanPython/article/details/113924892
Recomendado
Clasificación