OpenCV c++滑动条的创建和使用代码

 更新时间:2023年06月16日 11:07:54   作者:锡兰_CC  
滚动条(Trackbar)在OpenCV中是非常方便的交互工具,它依附于特定的窗口而存在,下面这篇文章主要给大家介绍了关于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);

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

总结

到此这篇关于OpenCV c++滑动条的创建和使用代码的文章就介绍到这了,更多相关OpenCV c++滑动条创建使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C语言实现简单酒店管理系统

    C语言实现简单酒店管理系统

    这篇文章主要为大家详细介绍了C语言实现简单酒店管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 深入解析 C++中std::stoul 函数

    深入解析 C++中std::stoul 函数

    std::stoul是 C++ 标准库中的一个字符串转换函数,它用于将 std::string 或 std::wstring 转换为 unsigned long 类型的整数,下面就来介绍一下
    2025-04-04
  • C++中Boost的智能指针scoped_ptr

    C++中Boost的智能指针scoped_ptr

    这篇文章介绍了C++中Boost的智能指针scoped_ptr,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • Qt学习之容器的使用详解

    Qt学习之容器的使用详解

    Qt容器主要优点就是在所有的平台上的运行都表现的一致,并且它们都是隐含共享的,这篇文章就来和大家讲讲Qt中容器的具体用法吧,希望对大家有所帮助
    2023-03-03
  • C语言实现通讯录小功能

    C语言实现通讯录小功能

    这篇文章主要为大家详细介绍了C语言实现通讯录小功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • C++实现通讯录功能

    C++实现通讯录功能

    这篇文章主要为大家详细介绍了C++实现通讯录功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • C/C++ extern和static的使用详解

    C/C++ extern和static的使用详解

    这篇文章主要介绍了C/C++ extern和static的使用,在讲到extern和static的时候先了解一下定义和声明的基本概念,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • C语言实现车辆出租管理系统

    C语言实现车辆出租管理系统

    这篇文章主要为大家详细介绍了C语言实现车辆出租管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • C++获取文件哈希值(hash)和获取torrent(bt种子)磁力链接哈希值

    C++获取文件哈希值(hash)和获取torrent(bt种子)磁力链接哈希值

    这二个代码一个是获取文件哈希值的,另外一个是获取torrent文件磁力链接的哈希值
    2013-11-11
  • 深入了解C语言中的字符串和内存函数

    深入了解C语言中的字符串和内存函数

    本文主要带大家来学习一些常用的库函数。有了这些库函数,我们可以更加方便地操作字符串和内存,从而提升我们的编码效率。话不多说,我们开始吧
    2022-11-11

最新评论