Чтобы нарисовать прямоугольник на изображении с помощью OpenCV, вы можете использовать несколько разных методов. Вот несколько подходов:
-
Метод 1: функция прямоугольника OpenCV
Используйте встроенную функциюrectangleOpenCV, чтобы нарисовать прямоугольник на изображении. Этот метод требует указания координат верхнего левого и нижнего правого углов прямоугольника.Пример кода:
import cv2 image = cv2.imread('input_image.jpg') cv2.rectangle(image, (x1, y1), (x2, y2), (255, 0, 0), 2) cv2.imshow('Image with Rectangle', image) cv2.waitKey(0) cv2.destroyAllWindows() -
Метод 2: манипуляции с массивом Numpy
Вы также можете использовать манипуляции с массивом Numpy, чтобы нарисовать прямоугольник на изображении. Этот метод предполагает изменение значений пикселей в указанной области для создания прямоугольника.Пример кода:
import cv2 import numpy as np image = cv2.imread('input_image.jpg') cv2.rectangle(image, (x1, y1), (x2, y2), (0, 255, 0), -1) cv2.imshow('Image with Rectangle', image) cv2.waitKey(0) cv2.destroyAllWindows() -
Метод 3: PIL (библиотека изображений Python)
Если вы предпочитаете работать с PIL, вы можете преобразовать изображение в объект изображения PIL и использовать модульImageDrawдля рисования прямоугольник на изображении.Пример кода:
from PIL import Image, ImageDraw image = Image.open('input_image.jpg') draw = ImageDraw.Draw(image) draw.rectangle([(x1, y1), (x2, y2)], outline='red', width=2) image.show() -
Метод 4: OpenCV с прозрачностью
Если вы хотите нарисовать прямоугольник с прозрачностью, вы можете создать отдельное изображение с альфа-каналом и наложить его на исходное изображение.Пример кода:
import cv2 import numpy as np image = cv2.imread('input_image.jpg') overlay = image.copy() cv2.rectangle(overlay, (x1, y1), (x2, y2), (0, 0, 255, 128), -1) cv2.addWeighted(overlay, 0.5, image, 0.5, 0, image) cv2.imshow('Image with Rectangle', image) cv2.waitKey(0) cv2.destroyAllWindows()