//注:调用滑杆时,显示滑杆的那张图的名字要和createTrackbar函数的第二个参数和onChangeTrackBar中imshow的名字相同
#include <iostream>
#include <opencv2\highgui\highgui.hpp>
using namespace std;
using namespace cv;
const string Barname = "阈值";
string window_name = "二值图";
void onChangeTrackBar(int pos, void* usrdata);
int main()
{
Mat Image;
Mat Image_Gray;
int lowThreshold = 30;
int max_lowThreshold = 255;
Image = imread("E:\\QT text\\blood vessel processing\\Canny\\image\\11.bmp");
if (!Image.data) //判断图像是否载入
{
cout << "图像载入失败!" << endl;
return 0;
}
// imshow(window_name, Image);
cvtColor(Image, Image_Gray, CV_BGR2GRAY);
imshow(window_name, Image_Gray);
createTrackbar(Barname, window_name, &lowThreshold, max_lowThreshold, onChangeTrackBar, &Image_Gray);
waitKey(0);
return 0;
}
// 回调函数
void onChangeTrackBar(int pos, void* usrdata)
{
// 强制类型转换
Mat src = *(Mat*)(usrdata);
Mat dst;
// 二值化
threshold(src, dst, pos, 255, 0);
imshow(window_name, dst);
}
注:调用滑杆时,滑杆所依附窗口的名字要和createTrackbar函数的第二个参数和onChangeTrackBar中imshow的名字相同。
参考:https://blog.csdn.net/xiaowei_cqu/article/details/7839140