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 sonpx
. 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:
¿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: