用open cv把一张图片显示在一个窗口中,然后把鼠标放在图片的某个位置,作为矩形的一个顶点,按住左键不放,拖动鼠标到另一个位置,作为矩形的另一个对角顶点,然后释放鼠标左键,用此方法在图片上画一个矩形。
时间: 2024-11-12 10:33:06 浏览: 15
在OpenCV中,你可以使用`cv2.imshow()`函数来显示图片,并结合鼠标事件处理功能来绘制矩形。下面是一个简单的Python代码示例,展示了如何完成这个操作:
```python
import cv2
import numpy as np
def draw_rectangle(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN: # 左键按下
top_left = (x, y)
elif event == cv2.EVENT_LBUTTONUP: # 左键释放
bottom_right = (x, y)
cv2.rectangle(img, top_left, bottom_right, (0, 255, 0), 2) # 绘制矩形
cv2.imshow('image', img)
# 加载图片
img = cv2.imread('your_image_path.jpg')
# 显示图片并绑定鼠标事件处理器
cv2.namedWindow('image')
cv2.setMouseCallback('image', draw_rectangle)
while True:
cv2.imshow('image', img)
if cv2.waitKey(1) & 0xFF == ord('q'): # 按下 'q' 键退出
break
cv2.destroyAllWindows()
```
在这个代码里,我们首先加载一张图片,然后创建一个窗口显示它。当用户在图像上点击左键(`EVENT_LBUTTONDOWN`),记录下鼠标的坐标作为矩形的一个顶点;当用户释放左键(`EVENT_LBUTTONUP`),获取释放时的坐标,并计算出矩形的其他两个顶点。最后,我们在原图上绘制矩形。
阅读全文