Dibujar un rectángulo usando el módulo OpenCV en Python

Vaibhav Vaibhav 22 enero 2022
Dibujar un rectángulo usando el módulo OpenCV en Python

OpenCV es una biblioteca de visión por computadora en tiempo real. Está disponible para lenguajes de programación como Python, Java y C++. Usando OpenCV, podemos dibujar formas y procesar imágenes de manera eficiente. En este artículo, aprenderemos a usar el módulo OpenCV para dibujar rectángulos.

Dibujar rectángulos usando OpenCV

El módulo OpenCV tiene una función rectangle() que se puede usar para dibujar rectángulos. Devuelve un objeto de imagen. Acepta los siguientes argumentos.

  • img: Es el objeto de imagen sobre el que se debe crear el rectángulo.
  • pt1: Son las coordenadas iniciales del rectángulo. Acepta una tupla con un valor de coordenada x y un valor de coordenada y.
  • pt2: Son las coordenadas finales del rectángulo. Acepta una tupla con un valor de coordenada x y un valor de coordenada y.
  • color: Es una tupla que representa el color del rectángulo. OpenCV considera el formato BGR por defecto. Por lo tanto, los valores deben ingresarse en BGR, en lugar del formato RGB general. Por ejemplo, (255, 0, 0) representa azul y (0, 0, 255) representa rojo.
  • thickness: Es el espesor del borde del rectángulo. Sus unidades son px. El grosor de -1 llenará el rectángulo con el color especificado. Para otros valores de espesor positivos, el rectángulo no se rellenará con el color especificado. Solo será aplicable a la frontera.

Ahora veamos cómo podemos usar esta función en la práctica para dibujar rectángulos. Consulte el siguiente código para ver un ejemplo.

import cv2

image_url = "full\\path\\to\\the\\image\\image.jpg"  # Full path is needed
image = cv2.imread(image_url, cv2.COLOR_BGR2RGB)
start_point = (140, 140)
end_point = (500, 500)
color = (0, 0, 255)
thickness = 3
image_with_rectangle = cv2.rectangle(
    img=image, pt1=start_point, pt2=end_point, color=color, thickness=thickness
)
cv2.imshow("Image with a Rectangle", image_with_rectangle)
cv2.waitKey(0)

El código anterior primero carga la imagen de la ruta especificada, convierte el orden de color BGR en orden de color RGB usando cv2.COLOR_BGR2RGB, y luego dibuja un rectángulo de tamaño 360 x 360 sobre la imagen. Tenga en cuenta que el valor del grosor es positivo. Esto significa que el rectángulo no tendrá color de relleno.

Además, tenemos esta declaración cv2.waitKey(0) al final del código. Evita que la imagen se cierre automáticamente una vez que se ejecuta el programa. Si el programa se ejecuta sin esta declaración, aparecerá la imagen modificada y luego se cerrará inmediatamente.

Producción:

dibujar rectange en opencv cv2 python

¿Qué pasa si cambiamos el valor de espesor a -1? En ese caso, el rectángulo tendrá un color de relleno. Consulte el siguiente código para el mismo.

import cv2

image_url = "full\\path\\to\\the\\image\\image.jpg"  # Full path is needed
image = cv2.imread(image_url, cv2.COLOR_BGR2RGB)
start_point = (140, 140)
end_point = (500, 500)
color = (0, 255, 255)
thickness = -1
image_with_rectangle = cv2.rectangle(
    img=image, pt1=start_point, pt2=end_point, color=color, thickness=thickness
)
cv2.imshow("Image with a Rectangle", image_with_rectangle)
cv2.waitKey(0)

Producción:

dibujar rectange en opencv cv2 python - establecer el grosor en -1

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Artículo relacionado - Python OpenCV