马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
鼠标变乱范例 OpenCV 支持多种鼠标变乱范例,常见的包罗:
cv2.EVENT_LBUTTONDOWN:左键按下
cv2.EVENT_RBUTTONDOWN:右键按下
cv2.EVENT_MBUTTONDOWN:中键按下
cv2.EVENT_LBUTTONUP:左键开释
cv2.EVENT_RBUTTONUP:右键开释
cv2.EVENT_MBUTTONUP:中键开释
cv2.EVENT_MOUSEMOVE:鼠标移动
cv2.EVENT_LBUTTONDBLCLK:左键双击
cv2.EVENT_RBUTTONDBLCLK:右键双击
cv2.EVENT_MBUTTONDBLCLK:中键双击
代码
实现点击鼠标左键不放移动可以绘图,点击c键盘去掉规复- import cv2
- import numpy as np
- # 定义全局变量
- drawing = False
- ix, iy = -1, -1
- # 定义鼠标回调函数
- def mouse_callback(event, x, y, flags, param):
- global drawing, ix, iy
- if event == cv2.EVENT_LBUTTONDOWN:
- drawing = True
- ix, iy = x, y
- elif event == cv2.EVENT_MOUSEMOVE:
- if drawing:
- cv2.line(img, (ix, iy), (x, y), (0, 123, 255), 2) # 使用 BGR 颜色格式,红色为 (0, 0, 255)
- ix, iy = x, y
- elif event == cv2.EVENT_LBUTTONUP:
- drawing = False
- cv2.line(img, (ix, iy), (x, y), (0, 133, 255), 2) # 使用 BGR 颜色格式,红色为 (0, 0, 255)
- # 创建一个纯白底图
- img = np.ones((512, 512, 3), np.uint8) * 255 # 创建一个纯白图像
- # 创建一个窗口
- cv2.namedWindow('Image')
- # 设置鼠标回调函数
- cv2.setMouseCallback('Image', mouse_callback)
- # 显示图像并等待用户交互
- while True:
- cv2.imshow('Image', img)
- key = cv2.waitKey(1) & 0xFF
- if key == 27: # 按下 ESC 键退出
- break
- elif key == ord('c'): # 'c'键清除画布
- img = np.ones((480, 640, 3), dtype=np.uint8) * 255
- # 保存图像
- cv2.imwrite('output_image.jpg', img)
- cv2.destroyAllWindows()
复制代码
|