python opencv 显示图片后,在图片上鼠标绘制矩形并可以选择大小删除
时间: 2024-05-13 08:14:22 浏览: 90
可以使用以下步骤实现:
1. 导入`opencv`库和`numpy`库。
```python
import cv2
import numpy as np
```
2. 加载图片并创建`namedWindow`窗口。
```python
img = cv2.imread('image.jpg')
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image', img)
```
3. 定义鼠标事件函数,用于绘制矩形。
```python
drawing = False
ix, iy = -1, -1
def draw_rectangle(event, x, y, flags, param):
global ix, iy, drawing
if event == cv2.EVENT_LBUTTONDOWN:
drawing = True
ix, iy = x, y
elif event == cv2.EVENT_MOUSEMOVE:
if drawing == True:
cv2.rectangle(img, (ix, iy), (x, y), (0, 255, 0), 2)
elif event == cv2.EVENT_LBUTTONUP:
drawing = False
cv2.rectangle(img, (ix, iy), (x, y), (0, 255, 0), 2)
```
4. 将鼠标事件函数与窗口绑定。
```python
cv2.setMouseCallback('image', draw_rectangle)
```
5. 在窗口中等待键盘输入,按下`q`键退出程序,按下`c`键清除所有矩形。
```python
while(1):
cv2.imshow('image', img)
k = cv2.waitKey(1) & 0xFF
if k == ord('q'):
break
elif k == ord('c'):
img = cv2.imread('image.jpg')
```
6. 最后,释放窗口和销毁所有窗口。
```python
cv2.destroyAllWindows()
```
阅读全文