opencv13-基本阈值操作
#include<opencv2\opencv.hpp>
#include<opencv2\highgui\highgui.hpp>
#include<iostream>
#include<math.h>
using namespace std;
using namespace cv;
Mat src, gray_dst,dst;
int threshold_value = 127;
int threshold_max = 255;
int type_value = 2;
int type_max = 4;
char *output_title = "output Image";
void Threshold_Demo(int, void*);
int main()
{
src = imread("E:\\vs2015\\opencvstudy\\police.jpg", 1);
if (src.empty())
{
cout << "could not load the src image!" << endl;
return -1;
}
char *input_title = "input Image";
imshow(input_title, src);
namedWindow(output_title);
createTrackbar("threshold value:", output_title, &threshold_value, threshold_max, Threshold_Demo);
createTrackbar("type value:", output_title, &type_value, type_max, Threshold_Demo);
Threshold_Demo(0, 0);
waitKey(0);
return 0;
}
void Threshold_Demo(int, void*)
{
cvtColor(src, gray_dst, CV_BGR2GRAY);
//threshold(gray_dst, dst, threshold_value, threshold_max, THRESH_BINARY);
//threshold(gray_dst, dst, threshold_value, threshold_max, type_value);
//threshold(gray_dst, dst, 0, 255, THRESH_OTSU|type_value); //自动计算阈值.此时图像只能是灰度图像
threshold(gray_dst, dst, 0, 255, THRESH_TRIANGLE | type_value); //自动计算阈值,.此时图像只能是灰度图像
imshow(output_title, dst);
}