阈值是什么?简单点说是把图像分割的标尺,这个标尺是根据什么产生的,阈值产生算法?阈值类型。(Binary segmentation)
double cv::threshold ( InputArray src,
OutputArray dst,
double thresh,
double maxval,
int type
)
type:
src是灰度图
实例代码
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
Mat src, gray_src,dst;
int threshold_value = 127;
int threshold_max = 255;
int type_value = 1;
int type_max = 4;
const char* output_title = "binary image";
void Threshold_Demo(int, void*);
int main(int argc, char** argv)
{
src = imread("F:/1.jpg");
if (!src.data)
{
cout << "cannot load image" << endl;
return -1;
}
namedWindow("input", WINDOW_AUTOSIZE);
imshow("input", src);
namedWindow(output_title, WINDOW_AUTOSIZE);
//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_src, CV_BGR2GRAY);
//threshold(gray_src, dst, threshold_value, threshold_max, type_value);
//threshold(gray_src, dst, 0, 255, THRESH_OTSU);
threshold(gray_src, dst, 0, 255, THRESH_TRIANGLE);
imshow(output_title, dst);
}