opencv13-基本阈值操作

opencv13-基本阈值操作

opencv13-基本阈值操作

opencv13-基本阈值操作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);
}