您的位置:首页 > 运维架构

opencv10-图像分割-阈值处理

2017-08-11 16:26 330 查看


灰度直方图是一个离散函数,它表示图像每一个灰度级与该灰度级出现频率的对应关系。一般计算步骤:

1、统计各个灰度值的像素个数

2、根据统计表画出直方图

性质:

1、只反映该图像中不同灰度值出现的次数,并不能反映某一灰度值像素所在的位置

2、任何一张图像能唯一的确定一个与它对应的直方图,而一个直方图可以有很多个不同的图像

3、如果一张图片被分成好几份,那这好几份的小图的直方图加起来就是全图的直方图。有木有很神奇(哈哈)

用途:阈值分割、图像增强

灰度直方图就长下图这样:



最简单的阈值处理就是:

1、你有图像的灰度直方图

2、你是主子,你设定了一个阈值T

3、拿着设置的阈值T与每一个像素灰度值进行比较,小于的设为一种颜色,大于的设为另一种颜色。可以做颜色反转

方法:

基本全局阈值算法

1选择一个T的初始估计值

2用T分割图像,生成两组像素:G1由所有灰度值大于T的像素组成,G2就是另外一部分剩余(小于T)的像素

3对G1、G2中所有的像素计算平均灰度值

4上面求得的两个平均灰度之和的二分之一就是新的阈值T1

5重复以上2-4,直到迭代所得的T1值之差小于事先定义的参数T

应用:指纹识别

基本自适应阈值

对于不均匀亮度图像,全局阈值不能实现有效分割。

通过边界特性选择阈值

基本思想:

1如果直方图的各个波峰很高,很窄,对称,且被很深的波谷分开时,有利于选择阈值。

2为了改善直方图的波峰形状,我们只把区域边缘的像素汇入直方图,而不考虑区域中间的像素

3用微分算子,处理图像,使图像只剩下边界中心两边的值。

优点:

1在前景和背景所占区域面积差别很大时,不会造成一个灰度级的波峰过高,而另一个过低

2边缘上的点在区域内还是区域外的概率是相等的,因此可以增加波峰的对称性

3基于梯度和拉普拉斯算子选择的像素,可以增加波峰的高度。

实现:

1对图像进行梯度计算,得到梯度图像

2得到梯度值最大的那一部分的像素直方图

3通过直方图的谷底,得到阈值T

如果用拉普拉斯算子,不通过直方图,直接得到阈值,方法是使用拉普拉斯算子过滤图像,将0跨越点对应的灰度值为阈值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息