OpenCV createTrackerBar的使用
int cv::createTrackbar(
const String & trackbarname,//trackerBar名称
const String & winname,//绘制TrackerBar的窗口
int * value,//需要动态改变的值
int count,//最大值
TrackbarCallback onChange = 0,//回调函数
void * userdata = 0 //传递的其他参数
)
需要传入多个参数时,需要自定义数据类型,然后在最后一个参数位置进行传递
例如:
typedef struct JustValues {
int value1;
int value2;
}JustValues;
//main函数中调用
createTrackbar("value11", "bgImage", &(justValues.value1), 100, on_valueChange, &justValues);
//滑动滑条时触发的回调函数
void on_valueChange(int value, void* userdata) {
JustValues* justValues = (JustValues*)userdata;
Mat gray;
cvtColor(source, gray, COLOR_BGR2GRAY);
Mat dilate = preprocess(gray, justValues->value1, justValues->value2);
}
如果创建了两个TrackerBar,但是只显示了一个,检查一下,是否是在回调函数中写了waitKey(0)
,阻塞了图像的显示。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现