opencv鼠标事件画矩形
时间: 2024-09-18 10:09:42 浏览: 44
OpenCV是一个强大的计算机视觉库,在Python中可以用来处理图像和视频。当你在图像上绘制矩形时,通常会结合使用OpenCV的基本图形功能以及鼠标事件来实现用户交互。
当处理鼠标的点击、拖拽等事件时,你可以这样做:
```python
import cv2
import numpy as np
def draw_rectangle(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
# 左键按下开始绘制矩形
start_x, start_y = x, y
elif event == cv2.EVENT_LBUTTONUP:
# 左键释放结束绘制矩形
end_x, end_y = x, y
cv2.rectangle(img, (start_x, start_y), (end_x, end_y), (0, 255, 0), 2) # 绘制绿色矩形
cv2.imshow('image', img)
# 读取或创建一张图像
img = cv2.imread('your_image.jpg') or np.zeros((500, 500, 3), dtype='uint8')
cv2.namedWindow('image')
cv2.setMouseCallback('image', draw_rectangle)
while True:
key = cv2.waitKey(1)
if key & 0xFF == ord('q'):
break
cv2.destroyAllWindows()
```
在这个例子中,`cv2.setMouseCallback`函数将鼠标事件绑定到`draw_rectangle`回调函数。用户左键点击并拖动可以创建矩形,然后`cv2.rectangle`用于在图像上绘制矩形。按 'q' 键退出程序。
阅读全文