opencv学习笔记03-鼠标回调与trackbar
1.opencv学习笔记01-图片读取与显示2.opencv学习笔记02-视频读取与写入
3.opencv学习笔记03-鼠标回调与trackbar
4.opencv学习笔记04-色彩转换5.opencv学习笔记05-numpy 介绍opencv 简易笔记 3--鼠标回调与 trackbar
1.设置鼠标回调函数
import cv2 import numpy def mouse_callback(event, x, y, flags, userdata): if event == 1: print(event, x, y, flags, userdata) # 窗口命名 cv2.namedWindow("mouse", cv2.WINDOW_NORMAL) # 设置鼠标回调函数 a = cv2.setMouseCallback("mouse", mouse_callback, "userdata") # 显示窗口 img = numpy.zeros((500, 500, 3), numpy.uint8) while True: cv2.imshow("mouse", img) key = cv2.waitKey(0) # 销毁 if key & 0xFF == ord("q"): cv2.destroyAllWindows() break
简单说明一下代码逻辑,首先需要定义一个鼠标回调函数,即 mouse_callback(event, x, y, flags, userdata),该函数原型应为:
#void on_Mouse(int event, int x, int y, int flags, void* param); def mouse_callback(event, x, y, flags, userdata): print(event, x, y, flags, userdata)
其中,像event,flags均有定义:


1.1 setMouseCallback(winname,callback,para) -> None
(1) winname: 即窗口名字
(2) callback: 需要设置的回调函数
(3) para: 参数,暂定,这个 param 是 onMouse 和 setMouseCallback 之间的参数通信接口。
2.trackBar 介绍
import cv2 import numpy def callback(any): pass # 窗口命名 cv2.namedWindow("trackbar", cv2.WINDOW_NORMAL) cv2.createTrackbar("R", "trackbar", 20, 255, callback) cv2.createTrackbar("G", "trackbar", 20, 255, callback) cv2.createTrackbar("B", "trackbar", 20, 255, callback) # 显示窗口 img = numpy.zeros((500, 500, 3), numpy.uint8) while True: # 获取当前trackbar的值 r = cv2.getTrackbarPos("R", "trackbar") g = cv2.getTrackbarPos("G", "trackbar") b = cv2.getTrackbarPos("B", "trackbar") print(type(r)) # 改变背景图片颜色 img[:] = [b, g, r] cv2.imshow("trackbar", img) key = cv2.waitKey(10) # 销毁 if key & 0xFF == ord("q"): cv2.destroyAllWindows() break
2.1 createTrackbar(trackbarName,windowName,value,count,onchange) ->
(1) trackbarName: trackbar 名字
(2) windowName: 窗口名字
(3) value: trackbar 当前值
(4) count: trackbar 最大值
(5) onchange: 一个回调函数,在值改变时触发
2.2 getTrackbarPos() -> (int)pos
(1) trackbarName: trackbar 名字
(2) windowName: 窗口名字
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律