OpenCVThreshold

1.二进制阈值(类型 = THRESH_BINARY)

//阈值规则

/*if (src(row, col) > thresh) {
	dst(row, col) = maxValue;
}
else {
	dst(row, col) = 0;
}*/

2.反二进制阈值(类型 = THRESH_BINARY_INV)

//逆二进制阈值处理与二进制阈值处理相反。
//如果相应的源像素大于阈值,则将目标像素设置为零;如果源像素小于阈值,则将目标像素设置为maxValue。

//阈值规则

/*if (src(row, col) > thresh) {
	dst(row, col) = 0;
}
else {
	dst(row, col) = maxValue;
}*/

3.截断阈值(类型 = THRESH_TRUNC)

//如果源像素值大于阈值,则将目标像素设置为阈值(thresh) 。否则,将其设置为源像素值。maxValue被忽略。
//maxValue被忽略。
//Truncate Threshold
/*if (src(row, col) > thresh) {
	dst(row, col) = thresh;
}
else {
	dst(row, col) = src(row,col);
}*/

4.阈值为零(类型 = THRESH_TOZERO)

//如果源像素值大于阈值,则将目标像素值设置为对应的源像素值。否则将其设置为零。maxValue被忽略
// Threshold to Zero
/*if (src(row, col) > thresh) {
	dst(row, col) = src(row,col);
}
else {
	dst(row, col) = 0;
}*/

5.倒置阈值为零(类型 = THRESH_TOZERO_INV)

//像素值大于阈值,则将目标像素值设置为零。否则,将其设置为源像素值。
//maxValue被忽略
/*if (src(row, col) > thresh) {
	dst(row, col) = 0;
}
else {
	dst(row, col) = src(row,col);
}*/

代码


#include <iostream>
#include <opencv2/opencv.hpp>


int main()
{

	using namespace cv;
	using namespace std;

	//1.二进制阈值(类型 = THRESH_BINARY)

	//阈值规则

	/*if (src(row, col) > thresh) {
		dst(row, col) = maxValue;
	}
	else {
		dst(row, col) = 0;
	}*/

	Mat src = imread("C:/Users/sualab/Desktop/threshold.png");

	Mat dst,dst1,dst2,dst3,dst4,dst5,dst6;
	
	double thresh = 0;
	double maxValue = 255;

	//只要图像的像素点大于thresh,就会被设为maxValue
	threshold(src, dst, thresh, maxValue, THRESH_BINARY);

	threshold(src, dst1, 127, maxValue, THRESH_BINARY);

	threshold(src, dst2, thresh, 128, THRESH_BINARY);
	

	//2.反二进制阈值(类型 = THRESH_BINARY_INV)

	//逆二进制阈值处理与二进制阈值处理相反。
	//如果相应的源像素大于阈值,则将目标像素设置为零;如果源像素小于阈值,则将目标像素设置为maxValue。

	//阈值规则

	/*if (src(row, col) > thresh) {
		dst(row, col) = 0;
	}
	else {
		dst(row, col) = maxValue;
	}*/
	//只要大于thresh的就会被设为0,反之设为maxValue
	threshold(src, dst3, thresh, maxValue, THRESH_BINARY_INV);


	//3.截断阈值(类型 = THRESH_TRUNC)

	//如果源像素值大于阈值,则将目标像素设置为阈值(thresh) 。否则,将其设置为源像素值。maxValue被忽略。
	//maxValue被忽略。
	//Truncate Threshold
	/*if (src(row, col) > thresh) {
		dst(row, col) = thresh;
	}
	else {
		dst(row, col) = src(row,col);
	}*/

	threshold(src, dst4, 127, maxValue, THRESH_TRUNC);


	//4.阈值为零(类型 = THRESH_TOZERO)

	//如果源像素值大于阈值,则将目标像素值设置为对应的源像素值。否则将其设置为零。maxValue被忽略
	// Threshold to Zero
	/*if (src(row, col) > thresh) {
		dst(row, col) = src(row,col);
	}
	else {
		dst(row, col) = 0;
	}*/

	threshold(src, dst5, thresh, maxValue, THRESH_TOZERO);




	//5.倒置阈值为零(类型 = THRESH_TOZERO_INV)

	//像素值大于阈值,则将目标像素值设置为零。否则,将其设置为源像素值。
	//maxValue被忽略

	/*if (src(row, col) > thresh) {
		dst(row, col) = 0;
	}
	else {
		dst(row, col) = src(row,col);
	}*/

	threshold(src, dst6, 127, maxValue, THRESH_TOZERO_INV);


	

	waitKey(0);
	return 0;






}


图片

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值