语言:C++
环境:vs2019
本章主要学习:
1、图像二值化;
2、阈值处理;
3、灰度变换处理;
4、分段线性变换;
上一章,讲了灰度变换有线性变换和非线性变换;这一章,我们还是将线性变换;
一、二值化法
如图
对应表达式如下式:
经过二值化后(给个阈值),大于阈值取0或255,或者小于阈值取255或0,最终结果获取一副二值图像;
二值化很重要,对一副图片进行二值化处理后,我们就可以进一步进行去噪处理和特征提取;
对于二值化,看上去简单,其实难得是对阈值的处理,阈值太大,目标就小;阈值太小,噪音就含在你的目标里面了,进行分析的话,判断失误性就太多。后面我们还有方法来找这个阈值,找阈值很难。比如人脸识别,阈值找的很正确的话,我们可以一下就可以把人脸识别出来了,比如一幅图有人脸,身子,背景;只需要把黄颜色的皮肤找到,其他都去掉,一下就二值化了;
但是,这个黄颜色,如果只指定一种黄颜色行不行呢???
我们可以根据实际去考虑,有的人黄颜色还不一样,有的是偏白的黄,有偏深黄;
所以,这个阈值就不好取。
一般情况下,我们对一张图片进行底层的处理之后,建立一些模型来取。
比如:如下图的细胞,我们取不同的阈值进行处理看看结果:
阈值取100和阈值取200的结果:
对于这个阈值怎么选取,我们可以有很多方法,比如直方图法去选择波峰或波谷,迭代阈值法、自适应阈值法能都直接算出阈值;
在公式一中,T是一个参数,我们可以叫固定阈值法,但是是不是可以有两个阈值呢???
肯定的回答是:有的;
我们称为:双固定阈值法;
如下图,在0到T1之间和T2到255之间,将图像设为黑;T1到T2之间为白;:
你也可以自己改,例如下图,在0到T1和T2到255之间,将图像设为黑;T1到T2之间设为白;
窗口灰度变换处理:
灰度窗口变换的变换函数表达式如下:
L表示窗口的下限,U表示窗口的上限;小于下限的设为黑,大于上限的设为白;
分段线性变换:
如下如,三段分别代表三个不同的线性变换;
到此为止,本篇文章就介绍完了。主要讲解了一些常用的灰度变换;欢迎大家阅读,觉得有用的话,点击关注,一起学习,一起进步;