abril 15, 2022 10:00 am

Jesús

Así como cuando estamos en esa etapa de estudiante y queremos conservar nuestros conocimientos a largo plazo, lo recomendable siempre es repasar lo aprendido antes de saturarnos de información que, a la larga, va a entorpecer nuestro proceso de aprendizaje.

Pues algo parecido es lo que vamos a ver en este post. Será algo breve pero de ayuda.

Dicho esto, comencemos con el repaso.

Cargar y Guardar Imágenes en OpenCV

 

A lo largo de muchos de los post que he escrito en este blog, hemos comprendido que con la visión por computador pasamos una parte importante de nuestro tiempo interactuando con imágenes. Por esta razón es importante también comprender una de las primeras etapas del dominio de Computer Vision, y me refiero a cómo leer, mostrar y guardar imágenes en el disco utilizando OpenCV, la biblioteca predominante en esta área.

Para dominar esta práctica de leer, mostrar y guardar imágenes, es suficiente con entender el comportamiento predeterminado de las funciones cv2.imread(), cv2.imshow() y cv2.imwrite(), especialmente al leer imágenes contenidas en el disco.

En este enlace verás de forma detallada cómo interactuar a nivel básico con imágenes usando OpenCV.

Dibujar

Otra característica básica para dominar ciertos aspectos de Computer Vision, es dibujar formas geométricas simples, y para ello OpenCV proporciona funciones para ejecutarlas.

Veamos algunas de las funciones de dibujo:

  • cv2.line(): Se utiliza para dibujar una línea en una imagen.
  • cv2.rectangle(): Se utiliza para dibujar un rectángulo en una imagen.
  • cv2.circle(): Se utiliza para dibujar un círculo en una imagen.

Aunque es posible representar otras formas diferentes a las que pronto describiremos, éstas son las más útiles y las que, en la mayoría de los casos. Entre otras cosas que podemos manejar están los siguientes propiedades: 

  • Color.
  • Ubicación
  • Tamaño de la figura
  • El grueso del trazo

Sin embargo, me gustaría dirigirte a este artículo para que comprendas, puramente, la comunión de estas funciones que, a priori, son básicas y sencillas pero importantes en computer vision. 

Voltear Imágenes

Por otro lado, otra función básica que encontramos con OpenCV, es el método para voltear una imagen a través de su eje x o y. Aunque las operaciones de volteo se utilizan con menos frecuencia, siguen siendo muy valiosas para aprender. Para esta tarea, contamos con la función cv2.flip().

Voltear imágenes con OpenCV es uno de los conceptos (si se quiere) de procesamiento de imágenes más sencillos que hemos tratado, lo utilizamos constantemente en Deep learning para generar más muestras de datos de entrenamiento, creando así clasificadores de imágenes más potentes y robustos.

En este enlace podrás descubrir lo sencilla y necesaria que es esta función.

Rotar Imágenes

Así mismo, una operación igual de básica que las mencionadas anteriormente es la de rotación.

Como su nombre lo indica, rotar una imagen consiste en girarla a la izquierda o a la derecha, con base en un ángulo determinado; sus funciones:

  • rotate(): La función auxiliar con la que iteraremos sobre cada ángulo definido.
  • cv2.getRotationMatrix2D(): La usaremos para generar una matriz de transformación.
  • cv2.warpAffine(): La usaremos para pasar la matriz generada con la funcióncv2.getRotationMatrix2D().

La rotación de las imágenes se encuentran entre las transformaciones geométricas más básicas que se pueden realizar y proporcionarán una buena base para el aprendizaje de otras transformaciones que se pueden realizar con OpenCV. Te animamos a experimentar con estos ejemplos cambiando las entradas y viendo los resultados.

Resumen

Como pudimos apreciar, estas funciones básicas son de gran ayuda para iniciar de forma significativa nuestro largo camino en Computer Vision. 

A medida que vayamos aprendiendo nuevas funciones, sabremos cómo implementarlas cuando identificamos problemas de la vida real que requieren soluciones, que van desde la energía y los servicios públicos hasta la fabricación y la automoción, y el mercado sigue creciendo.

Aunque cada vez es más fácil obtener recursos para desarrollar aplicaciones de computer vision, una pregunta importante que hay que responder desde el principio es: ¿qué harán exactamente estas aplicaciones? Comprender y definir las tareas específicas de la visión por ordenador puede centrar y validar los proyectos y las aplicaciones y facilitar la puesta en marcha.

Afortunadamente, en este blog abarcamos temas guías que te harán más fácil el camino. 

¡Hasta la próxima! 

Sobre el Autor

Jesús Martínez es el creador de DataSmarts, un lugar para los apasionados por computer vision y machine learning. Cuando no se encuentra bloggeando, jugando con algún algoritmo o trabajando en un proyecto (muy) cool, disfruta escuchar a The Beatles, leer o viajar por carretera.