【OpenCV • c++】滑动条的创建和使用

  • ? 个人简介:CSDN「博客新星」TOP 10 , C/C++ 领域新星创作者
  • ? 作    者:锡兰_CC ❣️
  • ? 专    栏:【OpenCV • c++】计算机视觉
  • ? 若有帮助,还请关注➕点赞➕收藏,不行的话我再努努力???

文章目录

    • 什么是滑动条
    • 创建滑动条
      • 参考代码
    • 获取当前滑动条位置
      • 参考代码

什么是滑动条

  滑动条是 OpenCV 动态调节参数特别好用的工具,它依附于窗口而存在。

创建滑动条

  在 OpenCV 中,可以使用createTrackbar函数来创建一个可以调整数值的滑动条,并将滑动条附加到指定的窗口上。

参考代码

int createTrackbar(const string & trackbarname, const string & winname, int * value, int count, TrackbarCallback onChange = 0, void * userdata = 0)

  其中,trackbarname表示我们创建的滑动条的名字。winname表示这个滑动条吸附在的窗口的名字。value表示滑块的位置,在创建时,滑块的初始位置就是该变量的值。count表示滑块可以到达的最大值,最小值始终为 0。onChange表示指向回调函数的指针,每次滑块位置改变时,这个函数都会进行回调。回调的类型为void xx(int, void*),其中第一个参数表示轨迹条的位置,第二个参数表示用户数据userdatauserdate表示传给回调函数的用户数据。

#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc_c.h>
#include <opencv2/imgproc/types_c.h>
#include<opencv2/imgproc.hpp> 
#include<iostream>
using namespace std;
using namespace cv;

Mat image, srcImage;
int thresholds = 50;

void threshold_track(int, void*) {
	Mat result;
	threshold(srcImage, result, thresholds, 255, THRESH_BINARY);
	//Canny(srcImage, result, thresholds, thresholds * 3, 3);
	imshow("边缘检测", result);
}

int main() {
	image = cv::imread("...cc.png");
	if (!image.data)
		return 1;
	cvtColor(image, srcImage, COLOR_BGR2GRAY);
	namedWindow("边缘检测", WINDOW_AUTOSIZE);
	createTrackbar("阈值", "边缘检测", &thresholds, 300, threshold_track);
	waitKey(0);
	return 0;
}

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

获取当前滑动条位置

  在 OpenCV 中,可以使用getTrackbarPos()函数来获取当前滑动条的位置。

参考代码

int getTrackbarPos(const string& trackbarname, const string& winname);

  其中第一个参数表示滑动条的名字,第二个参数表示轨迹条的父窗口的名称。

其他

更多专栏订阅:文章来源地址https://uudwc.com/A/ZPx

  • ? 【开卷数据结构】
  • ? 【备战蓝桥,冲击省一】
  • ?   从零开始的 c++ 之旅
  • ? 【OpenCV • c++】计算机视觉

原文地址:https://blog.csdn.net/Ceylan__/article/details/131033545

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年06月12日 01:14
树莓派4b使用摄像头+视频监控
下一篇 2023年06月12日 01:16