一、鼠标事件
### opencv控制鼠标
import cv2
import numpy as np
## 函数名可以随便取,但是里面的5个参数必须是固定的
## event表示鼠标事件,x,y是鼠标的当前坐标
## flags是鼠标的组合按键,userdata是用户数据
def mouse_callback(event, x, y, flags,userdata):
print(event,x, y, flags, userdata)
## 创建窗口
cv2.namedWindow('mouse', cv2.WINDOW_NORMAL)
## 设置宽度和高度
cv2.resizeWindow('mouse', 640, 360)
## 设置鼠标回调函数
cv2.setMouseCallback('mouse',mouse_callback,'123')
## 生成一张全黑的图片,宽度换算为图片矩阵的列数,高度换为矩阵的行数
img = np.zeros((360, 640, 3), np.uint8)
while True:
cv2.imshow('mouse',img)
# 每1ms返回一次信息
key = cv2.waitKey(1)
if key == ord('q'):
break
cv2.destroyAllWindows()
在运行器中会显示以下参数
二、Trackbar的使用.
## trackbar的使用
import cv2
import numpy as np
cv2.namedWindow('trackbar', cv2.WINDOW_NORMAL)
cv2.resizeWindow('trackbar', 640, 480)
## 定义一个回调函数
def callback(value):
print(value)
## 创建3个trackbar
cv2.createTrackbar('R', 'trackbar', 0 , 255, callback)
cv2.createTrackbar('G', 'trackbar', 0 , 255, callback)
cv2.createTrackbar('B', 'trackbar', 0 , 255, callback)
## 创建一个背景图
img = np.zeros((480, 640,3), np.uint8)
while True:
## 获取当前trackbar的值
r = cv2.getTrackbarPos('R', 'trackbar')
g = cv2.getTrackbarPos('G', 'trackbar')
b = cv2.getTrackbarPos('B', 'trackbar')
## 用获取到的3个值修改背景图片颜色
img[:] = [b, g, r]
cv2.imshow('trackbar', img)
key = cv2.waitKey(1)
if key == ord('q'):
break
cv2.destroyAllWindows()