Чтобы нарисовать прямоугольник с помощью мыши с помощью Python и OpenCV, вы можете использовать различные методы. Вот несколько подходов:
Метод 1: использование функций обратного вызова мыши
- Импортируйте необходимые библиотеки:
import cv2 import numpy as np - Создайте функцию обратного вызова мыши для обработки событий мыши:
def draw_rectangle(event, x, y, flags, param): global drawing, top_left_pt, bottom_right_pt if event == cv2.EVENT_LBUTTONDOWN: drawing = True top_left_pt = (x, y) elif event == cv2.EVENT_LBUTTONUP: drawing = False bottom_right_pt = (x, y) cv2.rectangle(image, top_left_pt, bottom_right_pt, (0, 255, 0), 2) cv2.imshow('Image', image) - Настройте окно и привяжите функцию обратного вызова мыши:
image = np.zeros((512, 512, 3), np.uint8) cv2.namedWindow('Image') cv2.setMouseCallback('Image', draw_rectangle) - Отобразите изображение и подождите, пока пользователь нарисует прямоугольник:
while True: cv2.imshow('Image', image) if cv2.waitKey(1) == 27: # Press Esc to exit break cv2.destroyAllWindows()
Метод 2: использование функции cv2.selectROI()
- Импортируйте необходимые библиотеки:
import cv2 - Загрузить изображение:
image = cv2.imread('image.jpg') - Используйте функцию cv2.selectROI(), чтобы выбрать прямоугольник:
rect = cv2.selectROI(image) - Нарисуйте прямоугольник на изображении:
x, y, w, h = rect cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2) cv2.imshow('Image', image) cv2.waitKey(0) cv2.destroyAllWindows()