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;

image

//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),阻塞了图像的显示。

posted @   Kelvin's  阅读(145)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示