Saltar al contenido
ros tutorial

03: Captura y procesamiento de imágenes con OpenCV




vision artificial tortuga

La captura y procesamiento de imágenes es una de las tareas fundamentales en el campo de la visión artificial. OpenCV proporciona una gran cantidad de funciones y herramientas para esta tarea, lo que lo convierte en una opción ideal para el desarrollo de sistemas de visión artificial. En este post, veremos cómo utilizar OpenCV para capturar y procesar imágenes en Python.

La primera tarea es la captura de imágenes. OpenCV proporciona la función cv2.VideoCapture() para capturar imágenes desde una cámara o un archivo de video. Esta función toma como parámetro el índice de la cámara o la ruta del archivo de video. Por ejemplo, si queremos capturar imágenes desde la cámara web predeterminada, podemos utilizar el siguiente código:

import cv2
cap = cv2.VideoCapture(0)       #Cargamos webcam

Una vez que hemos creado un objeto de captura, podemos utilizar el método read() para capturar una imagen. Este método devuelve una tupla que contiene un indicador de éxito (True o False) y la imagen ‘frame’ capturada. Por ejemplo:

while (cap.isOpened()):         #Cogemos un frame
    ret, frame = cap.read()
    cv2.imshow('webCam',frame)  #Mostramos el frame
    if (cv2.waitKey(1) == ord('s')): si presionamos 's' salimos del programa
        break
cap.release()   #Soltamos la camara
cv2.destroyAllWindows() #Cerramos ventana

Si queremos cambiar el tamaño de la imagen, podemos utilizar la función cv2.resize(). Esta función toma como parámetros la imagen original y el tamaño deseado. Por ejemplo, si queremos cambiar el tamaño de la imagen a un ancho de 600 píxeles y un alto de 400 píxeles, podemos utilizar el siguiente código:

# Cambiar el tamaño de la imagen
resized_frame = cv2.resize(frame, (600, 400))

Subscríbete a nuestro blog

Otra función importante es la de cv2.cvtColor() que permite convertir una imagen de un espacio de color a otro. Por ejemplo, si queremos convertir una imagen a escala de grises, podemos utilizar el siguiente código:

# Convertir a escala de grises
gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

La detección de bordes es otra técnica común en el procesamiento de imágenes. OpenCV proporciona varios algoritmos para la detección de bordes, como el algoritmo Canny. Este algoritmo toma como parámetros la imagen original y los valores umbral para la detección de bordes. Por ejemplo, si queremos detectar bordes en una imagen utilizando el algoritmo Canny con umbrales de 50 y 150, podemos utilizar el siguiente código:

# Detectar bordes con Canny
edges = cv2.Canny(gray_frame, 50, 150)

Otra técnica importante es la detección de características, que permite encontrar puntos específicos en una imagen, como esquinas o puntos de interés. OpenCV proporciona varios algoritmos de detección de características, como el algoritmo de Harris y el algoritmo de Shi-Tomasi. Por ejemplo, si queremos detectar esquinas en una imagen utilizando el algoritmo de Harris, podemos utilizar el siguiente código:

# Detectar esquinas con Harris
corners = cv2.cornerHarris(gray_frame, 2, 3, 0.04)

El código completo quedaría así:

import cv2
cap = cv2.VideoCapture(0)
while (cap.isOpened()):
    ret, frame = cap.read()         #capturar imagen
    edges = cv2.Canny(frame, 50, 150)   # Detectar bordes con Canny
    corners = cv2.cornerHarris(frame, 2, 3, 0.04) # Detectar esquinas con Harris
    cv2.imshow('webCam',frame)  #Mostramos imagen
    cv2.imshow('edge', edges)   #Mostramos bordes
    if (cv2.waitKey(1) == ord('s')):        #pulsamos s para salir
        break
cap.release()
cv2.destroyAllWindows()
canny

En resumen, OpenCV proporciona una gran cantidad de funciones y herramientas para la captura y procesamiento de imágenes. Con estas funciones, podemos realizar tareas básicas como el cambio de tamaño y la rotación, así como técnicas avanzadas como el filtrado y la detección de bordes. A medida que continuemos explorando el potencial de OpenCV, veremos cómo utilizar estas funciones para desarrollar sistemas de visión artificial más complejos y avanzados.

Aviso Legal

Política de cookies

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

03:Tutorial visión artificial con OpenCV y Python: Procesamiento

  • por