什么网站做跨境电子商务,手机app 网站,o2o网站大全,wordpress页面咋恢复今日继续学习树莓派4B 4G#xff1a;#xff08;Raspberry Pi#xff0c;简称RPi或RasPi#xff09; 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: Opencv 版本是4.5.1#xff1a; 今日学习:读取窗口鼠标状态坐标_TrackBar滑动条控件的使…今日继续学习树莓派4B 4GRaspberry Pi简称RPi或RasPi 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: Opencv 版本是4.5.1 今日学习:读取窗口鼠标状态坐标_TrackBar滑动条控件的使用 目录 读取鼠标状态坐标: 鼠标回调函数中参数的值 event参数 flags参数 程序编写 效果测试图: TrackBar滑动条控件 程序编写: 效果测试图: 读取鼠标状态坐标: 这整个读取鼠标状态坐标过程分俩部分 1、编写鼠标回调函数 1名称可以自己定义 2有五个参数会被传入(这五个参数供你判断用函数自动检测参数值) event鼠标事件、X、Y坐标、 flag组合键值、userdata用户数据/可以不定义 3 产生鼠标状态改变事件时进入的一个回调函数 2、设置鼠标回调函数 1有三个参数需要传入 Winname窗口名称、callback回调函数名称、userdata(用户数据) 2 鼠标回调函数中参数的值 event参数 cv2.EVENT_LBUTTONDOWN: 鼠标左键按下整数值为1。cv2.EVENT_RBUTTONDOWN: 鼠标右键按下整数值为2。cv2.EVENT_MBUTTONDOWN: 鼠标中键如果有的话按下整数值为3。cv2.EVENT_LBUTTONUP: 鼠标左键释放整数值为4。cv2.EVENT_RBUTTONUP: 鼠标右键释放整数值为5。cv2.EVENT_MBUTTONUP: 鼠标中键如果有的话释放整数值为6。cv2.EVENT_MOUSEMOVE: 鼠标移动整数值为0。 flags参数 cv2.EVENT_FLAG_LBUTTON: 鼠标左键被按下整数值为1通常与event参数一起使用不直接作为flags的值。cv2.EVENT_FLAG_RBUTTON: 鼠标右键被按下整数值为2同样通常与event参数一起使用。cv2.EVENT_FLAG_MBUTTON: 鼠标中键被按下整数值为4注意这与EVENT_MBUTTONDOWN的event值不同。cv2.EVENT_FLAG_CTRLKEY: Ctrl键被按下整数值为8。cv2.EVENT_FLAG_SHIFTKEY: Shift键被按下整数值为16。cv2.EVENT_FLAG_ALTKEY: Alt键被按下整数值为32。 程序编写 以下程序实现了 创建一个1280*640的窗口 鼠标移动、点击、抬起等按键时打印键值、坐标、Flag、usedata等数值 # codingutf-8
import cv2
import numpy as np#鼠标回调函数
def Mouse_Callback(event, x, y, flags, param):#左右键输出提示与键值其余按键事件就不例举了直接打印定义的键值了if event cv2.EVENT_LBUTTONDOWN:print(L_Button Down {}\r\n.format(event))elif event cv2.EVENT_RBUTTONDOWN:print(R_Button Down {}\r\n.format(event))else:print(event)#输出鼠标坐标\Flags\userdataprint(Mouse position : X :str(x) Y :str(y)\r\n)print(Flags : {}.format(flags))print(fUserdata is{param}\r\n\r\n) #创建窗口
cv2.namedWindow(mouse,cv2.WINDOW_NORMAL)
cv2.resizeWindow(mouse,1280,640)#设置鼠标回调
cv2.setMouseCallback(mouse,Mouse_Callback)
#显示窗口与背景
imgnp.zeros((640,1280,3),np.uint8)while True:cv2.imshow(mouse,img)keycv2.waitKey(1)if key0XFFord(q):break#释放所有资源
cv2.destroyAllwindows() 效果测试图: TrackBar滑动条控件 使用TrackBar控件需要认识俩个函数: 1、createTrackbar 1) 需要传入五个参数: trackBarname(trackBar名称)、winname(窗口名称)、valuetrackBar当前值 counttrackBar最大值、callback回调函数名称、userdata(可以为空) 2) 2、getTrackBarPos: 1) 输入参数:TrackbarnameTrackBar名称、Winname(窗口名称) 2) 输出滑动条当前值 3 3、Trackbar callback回调函数 1传入俩参数: (这俩个参数供你判断用函数自动检测参数值) value当前值、userdata 用户数据\可以为空 def callback_function(value, userdataNone): # 在这里处理滑动条的变化 pass 程序编写: 以下程序编写实现了: 创建一个窗口可以通过R\G\B三个TrackBar控件实现调整窗口颜色 # codingutf-8
import cv2
import numpy as np#定义空回调函数
def callback(value,userdataNone):pass#创建窗口
cv2.namedWindow(TrackBar,cv2.WINDOW_NORMAL)
cv2.resizeWindow(TrackBar,640,640)#创建Trackbar
cv2.createTrackbar(R,TrackBar,0,255,callback)
cv2.createTrackbar(G,TrackBar,0,255,callback)
cv2.createTrackbar(B,TrackBar,0,255,callback)imgnp.zeros((640,640,3),np.uint8)while True:cv2.imshow(TrackBar,img)#获取TrackBar的值rcv2.getTrackbarPos(R,TrackBar)gcv2.getTrackbarPos(G,TrackBar)bcv2.getTrackbarPos(B,TrackBar)#使用b,g,r值设置img所有像素img[:][b,g,r]keycv2.waitKey(1)if key0XFFord(q):break
#释放所有资源
cv2.destroyAllwindows()效果测试图: 就是生成了一个带三个滑块的窗口可以通过滑动调整颜色: