open cv创建一幅图像,大小为500*800,在图像中按住鼠标左键移动绘制图形,双击鼠标左键可清除所绘制的图形
时间: 2024-04-30 10:22:35 浏览: 18
下面是使用OpenCV和Python实现的示例代码:
```python
import cv2
# 创建一幅空白图像
img = cv2.imread("image.jpg")
img = cv2.resize(img, (800, 500))
blank_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 定义一个变量来记录鼠标移动状态
drawing = False
# 定义一个回调函数来处理鼠标事件
def draw(event, x, y, flags, param):
global drawing
if event == cv2.EVENT_LBUTTONDOWN:
drawing = True
elif event == cv2.EVENT_MOUSEMOVE:
if drawing:
cv2.circle(blank_img, (x, y), 10, (0, 0, 255), -1)
elif event == cv2.EVENT_LBUTTONUP:
drawing = False
# 创建一个窗口并绑定回调函数
cv2.namedWindow("image")
cv2.setMouseCallback("image", draw)
# 显示图像并等待用户操作
while True:
cv2.imshow("image", blank_img)
key = cv2.waitKey(1) & 0xFF
if key == ord('q'):
break
elif key == ord('c'):
blank_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.destroyAllWindows()
```
运行代码后,会弹出一个窗口显示一幅空白的灰度图像。当用户按住鼠标左键并移动时,程序会在图像上绘制一个红色的圆形。当用户双击鼠标左键时,程序会清除所有已绘制的图形。用户可以按下“q”键退出程序,按下“c”键清除图像。