Lecciones de visión por computadora en Python + OpenCV desde el principio

En esta serie de tutoriales, le mostraré cómo usar la biblioteca OpenCV en Python. Pero primero, algunas palabras sobre la visión por computadora en sí. ¿Cómo ve una computadora? Si le conecta una cámara de video, esto no significa que lo verá. Obtenemos solo un montón de ceros y unos. Y una persona ve algo significativo. ¿Cómo podemos extraer algo significativo de estos ceros y unos? Ésta es la tarea de la visión por computadora.



Como regla general, el análisis de imágenes mediante algoritmos de visión por computadora pasa por las siguientes etapas (pero algunas etapas pueden no estar allí):

1. Preprocesamiento de imágenes. En esta etapa, pueden ocurrir mejoras en la calidad de la imagen, como aumentar el contraste, la nitidez o viceversa, desenfocar la imagen para eliminar el ruido y los pequeños detalles menores de la misma. Todo esto es necesario para facilitar el análisis de la imagen en el futuro.

2. Filtración intermedia. En esta etapa, se aplican varios filtros a la imagen para indicar áreas de interés en la imagen o para facilitar el trabajo de algoritmos especiales de análisis de imágenes.

3. Revelación de signos especiales (características).Puede ser la selección de puntos especiales, la selección de contornos o algunas otras características.

4. Análisis de alto nivel. En esta etapa, de acuerdo con las características encontradas en las imágenes, se determinan los objetos específicos y, como regla, sus coordenadas. También en esta etapa, puede ocurrir la segmentación o algún otro procesamiento de alto nivel.



Ahora vayamos al grano. Veremos trabajar con Python + OpenCV en el entorno PyCharm. Primero necesitamos instalar OpenCV. Para hacer esto, vaya a ImportSettings:







Luego, en ProjectInterpreter y haga clic en el signo más allí:







Estamos buscando opencv allí e instálelo:







Ahora escribiremos nuestro "Hello, World" - un programa que mostrará una imagen:



import cv2
my_photo = cv2.imread('MyPhoto.jpg')
cv2.imshow('MyPhoto', my_photo)
cv2.waitKey(0)
cv2.destroyAllWindows()


      
      







Esta es la ventana que abrirá este programa:







¿Qué hace el programa? Carga una imagen de un archivo, la muestra y espera a que salga la tecla ESC.

Intentemos algo con esta imagen. Por ejemplo, puede cambiar su tamaño. Digamos que queremos hacer una imagen de 200 de ancho. Para hacer esto, calculemos su altura y usemos estos datos para escalarla:



import cv2
my_photo = cv2.imread('MyPhoto.jpg')
cv2.imshow('MyPhoto', my_photo)

#  
final_wide = 200
r = float(final_wide) / my_photo.shape[1]
dim = (final_wide, int(my_photo.shape[0] * r))

#     
resized = cv2.resize(my_photo, dim, interpolation = cv2.INTER_AREA)
cv2.imshow("Resized image", resized)
cv2.waitKey(0)

cv2.destroyAllWindows()


      
      







Esto es lo que obtuvimos: a







menudo, para facilitar el análisis de imágenes, es necesario hacer la imagen en blanco y negro. Una de las formas es subir una imagen a la vez en un espacio en blanco y negro:



import cv2
img = cv2.imread('MyPhoto.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow('MyPhoto', img)
cv2.waitKey(0)

cv2.destroyAllWindows()


      
      







Si necesita convertir una imagen ya cargada, puede usar la función cvtColor, que convierte una imagen de un espacio de color a otro:




import cv2
img = cv2.imread('MyPhoto.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow('MyPhoto', img)
cv2.waitKey(0)

cv2.destroyAllWindows()


      
      







Así es como se verá:







Entonces, para resumir.

Aprendimos a instalar OpenCV, cargar desde un archivo y mostrar una imagen, así como a realizar transformaciones simples en él, como escalar y convertir una imagen en color a blanco y negro. Si esta lección "entra", continuará.



All Articles