阈值原理
简单点说是把图像分割的标尺,这个标尺是根据什么产生的,阈值产生算法?阈值类型。
相关API
threshold(src, dst,
thresh, thresh_value
maxval, 最大值
type)
阈值类型
阈值二值化、阈值反二值化、截断、阈值取零、阈值反取零
代码展示
#include <iostream>
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
Mat src, dst, src_gray;
void threshold_demo(int , void* );
int threshold_value = 125;
int threshold_max = 255;
int type_value = 2;
int type_max = 4;
int main()
{
src = imread("F:/Opencvlearn/picture/1.jpg");
if (src.empty())
{
cout << "could not load image..." << endl;
return -1;
}
namedWindow("input", WINDOW_AUTOSIZE);
imshow("input", src);
namedWindow("output", WINDOW_AUTOSIZE);
createTrackbar("Trackbar_value", "output", &threshold_value, threshold_max, threshold_demo);
createTrackbar("type", "output", &type_value, type_max, threshold_demo);
threshold_demo(0, 0);
waitKey(0);
return 0;
}
void threshold_demo(int , void* )
{
cvtColor(src, src_gray, COLOR_BGR2GRAY);
//threshold(src_gray, dst, current_value, max_value, THRESH_BINARY);
//threshold(src_gray, dst, current_value, max_value, type_value);
threshold(src_gray, dst, 0, 255, THRESH_TRIANGLE |type_value); //选择最优值
imshow("output", dst);
return;
}