OpenCV(十四)图像阈值

目录

一、基础理论

1.二进制阈值化

2.反二进制阈值化

3.截断阈值化

4.阈值化为0

5.反阈值化为0

函数

代码

效果

参考答案


一、基础理论

在二维数字图像中,其每个像素点对应了不同的像素值,其像素值各不相同。可以对像素值特定范围内的图像图像进行操作,划分这个范围的值就被称为图像阈值,它不是一个固定的量级,是根据每幅图像和处理要求动态改变。例如我们可以从图像中利用阈值分割出我们需要的部分。

例:

  

1.二进制阈值化

  

在运用二进制阈值化操作时,首先指定一个阈值量即像素的灰度值,遍历图像中像素值,大于这个阈值的像素均设置为最大像素值(如8位灰度值最大为255),灰度值小于设定阈值的像素点像素值重新赋值为0.得到如下图所示图像,借用二进制概念。(超过该阈值即为1(255),否则为0

2.反二进制阈值化

  

反二进制阈值化顾名思义就是与第一个阈值化类型相反。

与二进制阈值化相同的是也要首先指定一个阈值,不同的是在对图像进行阈值化操作时正好与二进制阈值化相反,当图像像素点超过这个阈值的时候像素点重新赋值为0,当像素值低于该阈值时即赋值为最大值。(低于该阈值即为1(255),否则为0

3.截断阈值化

根据给定的像素值阈值,图像中大于该阈值的像素点被重新设置为该阈值,而小于该阈值的像素值保持不变。(超过阈值部分设置为阈值


4.阈值化为0

  

与截断阈值化不同,阈值化为0类型像素点的灰度值如果大于该阈值则像素值不变,如果像素点的灰度值小于该阈值,则像素值设置为0。(不足阈值部分设置为0


5.反阈值化为0

  

其原理类似于阈值化为0类型只不过在对图像进行操作时相反,像素值大于该阈值的像素重新赋值为0,而小于该阈值的像素值则保持不变,(超过阈值部分设置为0

函数

threshold(gray, dst, threshold_value, threshold_max, type);
	//				阈值			最大值			类型

类型: 

 

代码

//基本阈值操作
#include<opencv2/opencv.hpp>
#include<iostream>
#include<math.h>

using namespace cv;
Mat src, gray, dst;
int threshold_value = 127;
int threshold_max = 255;
int type = 2;
int type_max = 4;
char name[] = "result";
void Callback_Thre(int, void*);			//回调函数

void Image_Init()
{
	src = imread("Resource/test.jpg");
	if (!src.data)
	{
		printf("could not load image...\n");
		return ;
	}
	imshow("原图", src);

	cvtColor(src, gray, COLOR_BGR2GRAY);
	imshow("GRAY", gray);
}

int main(int argc, int argv)
{
	Image_Init();

	Callback_Thre(0, 0);
	createTrackbar("threshold value", name, &threshold_value, threshold_max, Callback_Thre);
	createTrackbar("threshold type", name, &type, type_max, Callback_Thre);

	waitKey(0);
	return 0;
}

//阈值化实现函数
void Callback_Thre(int, void*)
{
	//阈值化(自主定义阈值)
	threshold(gray, dst, threshold_value, threshold_max, type);
	
	//阈值化(系统帮忙取,大津法OTSU:THRESH_OTSU;三角形阈值法:THRESH_TRIANGLE)
	//threshold(gray, dst, 0, 255, THRESH_OTSU | type);
	imshow(name, dst);
}

效果

 

参考答案

https://blog.csdn.net/keith_bb/article/details/54617625

https://blog.csdn.net/zhu_hongji/article/details/81536891

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_(*^▽^*)_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值