1. 程式人生 > >基本閾值的操作

基本閾值的操作

#include<iostream>
#include<opencv2\opencv.hpp>
#include<math.h>
using namespace std;
using namespace cv;
int threshold_value = 127;  //閾值的初始值
int thresholg_max = 255;    //閾值的最大值
int type_value = 2;
int type_max = 4;






const char*output_title = "binary image";
void Threshold_Demo(int,void*);
Mat src,gray_src,dst;
int main(int argc,char) {
src = imread("1.jpg");
if (src.empty())
{
printf("could not load image...");
return -1;
}
namedWindow("input_image", WINDOW_AUTOSIZE);
namedWindow(output_title, WINDOW_AUTOSIZE);
imshow("input_image", src);
createTrackbar("Threshold value:", output_title, &threshold_value, thresholg_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_src, CV_RGB2GRAY);
printf("%d", THRESH_BINARY);
printf("%d", THRESH_BINARY_INV);
printf("%d", THRESH_TRUNC);
printf("%d", THRESH_TOZERO);
printf("%d", THRESH_TOZERO_INV);

threshold(gray_src, dst, threshold_value,thresholg_max,type_value);
imshow(output_title, dst);

}