opencvC++学习14基本阈值操作

阈值类型一 阈值二值化(threshold binary)

大于阈值为255,小于阈值为0。opencvC++学习14基本阈值操作_第1张图片

阈值类型二 阈值反二值化(threshold binary Inverted)

大于阈值为0,小于阈值为255。


阈值类型三 截断 (truncate)

大于阈值为该阈值,小于阈值不变。


阈值类型四 阈值取零 (threshold to zero)

小于阈值为0, 大于阈值不变。


阈值类型五 阈值反取零 (threshold to zero inverted)

小于阈值不变, 大于阈值为0。

opencvC++学习14基本阈值操作_第2张图片

阈值类型参数

opencvC++学习14基本阈值操作_第3张图片

代码:

#include 

using namespace cv;
using namespace std;


Mat src, gray_src, dst;
int threshold_value = 127;
int threshold_max = 255;
int type_value = 2;
int type_max = 4;
const char* output_title = "binary image";
void Threshold_Demo(int, void*);


int main()
{
	src = imread("D:/opencvSRC/test.jpg");
	if (!src.data) {

		printf("load image error!\n");
		return -1;
	}
	namedWindow("src", CV_WINDOW_AUTOSIZE);
	imshow("src", src);

	namedWindow(output_title, CV_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);

	imshow(output_title, dst);
}

效果:

opencvC++学习14基本阈值操作_第4张图片

你可能感兴趣的:(opencv)