#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
//threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type);
//阈值分割类型
//THRESH_BINARY = 0, // 大于thresh 为 maxval,否则为 0
//THRESH_BINARY_INV = 1,// 大于thresh 为 0,否则为 maxval
//THRESH_TRUNC = 2, // 大于thresh 为 thresh,否则为 0
//THRESH_TOZERO = 3, // 大于thresh 不变,否则为 0
//THRESH_TOZERO_INV = 4, // 大于thresh 为 0,否则 不变
Mat src = imread("D:\\VC\\c++\\opencv源码\\opencv源码\\12.bmp", IMREAD_GRAYSCALE);//读入图像
Mat dst;
int method;
double thresh;
void on_change(int, void*)
{
dst = Mat::zeros(src.size(), src.type());
threshold(src, dst, thresh, 255, method);
imshow("【原始图像】", src);
imshow("【二值图像】", dst);
}
int main()
{
cout << "请输入分割所需的图像阈值" << endl;
cin >> thresh;
namedWindow("【原始图像】", WINDOW_AUTOSIZE);
namedWindow("【二值图像】", WINDOW_AUTOSIZE);
createTrackbar("【阈值分割类型】", "【原始图像】", &method, 4, on_change);
on_change(0, 0);
waitKey(0);
return 0;
}