#include
#include
using namespace std;
using namespace cv;
Mat src,gray,dst;
int threshold_value = 127;//阈值
int threshold_max = 255;
int type_value = 2;//阈值类型 枚举
int type_max = 4;
void Threshold_Demo(int, void*);
int main(int argc, char** argv)
{
src = imread("../path.jpg");
if (src.empty())
{
cout << "could not load image1..." << endl;
return -1;
}
namedWindow("src", WINDOW_AUTOSIZE);
imshow("src", src);
namedWindow("dst", WINDOW_AUTOSIZE);
//创建滑动条1
createTrackbar("Threshold Value:",//滑动条标签
"dst",//在哪个窗口放滑动条
&threshold_value,//阈值大小
threshold_max,//滑动条能够达到的最大值
Threshold_Demo);//滑动条移动时候的回调函数
//创建滑动条2
createTrackbar("Type Value:",
"dst",
&type_value, //阈值类型
type_max,
Threshold_Demo);
Threshold_Demo(0, 0);//回调函数
waitKey(0);
return 0;
}
void Threshold_Demo(int, void*)
{
cvtColor(src, gray, COLOR_BGR2GRAY);//转换为灰度图
//阈值化操作
threshold(gray, dst, threshold_value, threshold_max , type_value);
imshow("dst", dst);
}
输出结果: