cv2 python

CV2: Guía maestra OpenCV para desarrolladores de Python

Florian Zyprian

Python es un popular lenguaje de programación que cuenta con numerosas bibliotecas y módulos para diferentes aplicaciones. Una de estas bibliotecas, que se utiliza a menudo para el procesamiento de imágenes y vídeo, es OpenCV. El módulo cv2 es el más importante de OpenCV, ya que proporciona a los desarrolladores una interfaz fácil de usar para trabajar con funciones de procesamiento de imágenes y vídeo.

En este artículo mostraremos algunas de las funciones más utilizadas en cv2.

cv2 - Instalación

Antes de ver las funciones, cv2 debe estar instalado. Hay dos formas principales de instalar cv2:

  1. pip install opencv-python
  2. conda install -c conda-forge opencv

Una vez instalado cv2, podemos empezar a utilizar las diversas funciones que ofrece la biblioteca.

En el pasado, hemos escrito sobre paquetes de Python como.

cv2.imread

cv2.imread es una función para leer una imagen de un archivo. Toma la ruta del archivo como entrada y devuelve un array numpy que contiene la imagen. He aquí un ejemplo:

importar cv2
img = cv2.imread('imagen.jpg')

cv2.redimensionar

cv2.resize es una función que se utiliza para cambiar el tamaño de una imagen. Toma la imagen de entrada y las nuevas dimensiones como entradas y devuelve la imagen redimensionada. He aquí un ejemplo:

importar cv2
img = cv2.imread('imagen.jpg')
resized_img = cv2.resize(img, (500, 500))

cv2.imshow

cv2.imshow es una función utilizada para mostrar una imagen. Toma la imagen como entrada y abre una nueva ventana para mostrar la imagen. He aquí un ejemplo:

importar cv2
img = cv2.imread('imagen.jpg')
cv2.imshow('imagen', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

cv2.imwrite

cv2.imwrite es una función para guardar una imagen en un archivo. Toma la imagen y la ruta del archivo como entrada y guarda la imagen en la ruta del archivo. He aquí un ejemplo:

importar cv2
img = cv2.imread('imagen.jpg')
cv2.imwrite('nueva_imagen.jpg', img)

cv2.umbral

cv2.threshold es una función que se puede utilizar para umbralizar una imagen. Toma la imagen de entrada y un valor umbral como entrada y devuelve la imagen umbralizada. He aquí un ejemplo:

importar cv2
img = cv2.imread('imagen.jpg', 0)
ret, thresh = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)

cv2.rectángulo

cv2.rectangle es una función para dibujar un rectángulo en una imagen. Toma la imagen de entrada, las coordenadas del rectángulo, el color y el grosor como entradas y devuelve la imagen con el rectángulo dibujado. He aquí un ejemplo:

importar cv2
img = cv2.imread('imagen.jpg')
cv2.rectangle(img, (100, 100), (200, 200), (0, 255, 0), 2)

cv2.encontrarContornos

cv2.findContours es una función que se utiliza para encontrar los contornos en una imagen. Toma la imagen de entrada, el modo de recuperación del contorno y el método de aproximación del contorno como entradas y devuelve los contornos. He aquí un ejemplo:

importar cv2
img = cv2.imread('imagen.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
contornos

Carga y visualización de imágenes

Una vez que haya instalado CV2, puede trabajar con imágenes. El primer paso es cargar una imagen en su programa Python. Para ello, puede utilizar la función cv2.imread(), que toma la ruta al archivo de imagen como entrada y devuelve una matriz NumPy que representa la imagen.

importar cv2
# Cargar una imagen
img = cv2.imread('imagen.jpg')
# Mostrar la imagen
cv2.imshow('Imagen', img)
# Espera a que se pulse una tecla y cierra la ventana
cv2.waitKey(0)
cv2.destroyAllWindows()

En el código anterior, primero cargamos una imagen con la función cv2.imread() y la almacenamos en la variable img. Después mostramos la imagen con la función cv2.imshow(), que toma dos argumentos: el nombre de la ventana y la propia imagen. Finalmente, esperamos a que se pulse una tecla con la función cv2.waitKey() y cerramos la ventana con la función cv2.destroyAllWindows().

Manipulación de imágenes

CV2 ofrece muchas funciones para editar imágenes, por ejemplo, redimensionar, rotar y recortar. He aquí algunos ejemplos:

# Cambiar el tamaño de una imagen
resized_img = cv2.resize(img, (500, 500))
# Gira una imagen
(filas, columnas) = img.shape[:2]
M = cv2.getRotationMatrix2D((cols/2, rows/2), 45, 1)
rotated_img = cv2.warpAffine(img, M, (cols, rows))
# Recortar una imagen
imagen_recortada = img[100:300, 200:400]

En el código anterior, una imagen se redimensiona con la función cv2.resize(), una imagen se rota con las funciones cv2.getRotationMatrix2D() y cv2.warpAffine(), y una imagen se recorta con NumPy array indexing.

Filtrado de imágenes

El filtrado de imágenes es una técnica importante en el tratamiento de imágenes que puede utilizarse para mejorar o extraer determinadas características de una imagen. CV2 ofrece varias funciones para filtrar imágenes, como el desenfoque, la nitidez y la detección de bordes. He aquí algunos ejemplos:

# Desenfocar una imagen
blurred_img = cv2.blur(img, (5, 5))
# Enfocar una imagen
kernel = np.array([[-1,-1,-1], [-1,9,-1], [-1,-1,-1]])
sharpened_img = cv2.filter2D(img, -1, kernel)
# Detectar bordes en una imagen
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges_img = cv2.Canny(gray_img, 100, 200)

En el código anterior, una imagen se desenfoca con la función cv2.blur(), se agudiza con la función cv2.filter2D() y un kernel personalizado, y se detecta con la función cv2.cvtColor() para convertir la imagen a escala de grises y la función cv2.Canny() para detectar bordes en una imagen.

Conclusión

CV2 es una potente librería para trabajar con imágenes en Python. En este artículo hemos cubierto algunas de las funciones y métodos más utilizados en CV2, incluyendo la carga y visualización de imágenes, la manipulación de imágenes y el filtrado de imágenes. Con estas herramientas a tu disposición, podrás explorar el apasionante mundo de la visión por computador y el procesamiento de imágenes.

CV2 se encuentra en PyPi descargar.

Para los desarrolladores, nuestras contribuciones son para API DE OCR y Documento AI también muy emocionante.

    ¿Busca su empresa nuevos talentos en IA?

    Talento de primera clase en IA para su empresa

    Mediación especializada, máximo éxito sin esfuerzo: Nuestro socio Opushero le ayuda a encontrar los mejores talentos. Una red de agencias de consultoría especializadas que apoyan tanto a jóvenes aspirantes como a desarrolladores de IA experimentados. Recibe sugerencias de candidatos precalificados que quieren empezar a trabajar contigo.

    Sobre mí

    Más artículos interesantes

    título del lago de datos

    Data Lake: Definición y ventajas en la aplicación

    Con un lago de datos se pueden almacenar y procesar distintos tipos de datos independientemente de su tamaño. El uso de los...

    Leer el artículo
    Minería de textos y documentos

    Text Mining Wiki - Definiciones y ejemplos de uso

    Minería de textos: definición y ejemplos de aplicación La minería de textos o análisis de textos hace referencia al proceso de análisis de grandes cantidades de datos de texto no estructurados que las empresas utilizan en...

    Leer el artículo

    Aprendizaje automático - 10 algoritmos importantes y su aplicación

    El aprendizaje automático (Machine Learning, ML) es una tecnología de inteligencia artificial que aprende patrones a partir de datos y realiza predicciones basadas en estos patrones y...

    Leer el artículo
    Flecha arriba