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跨越点对应的灰度值为阈值。
相关文章推荐
- OpenCV学习笔记10 - 阈值分割
- 图像处理算法基础(十)---大津法求最佳分割阈值
- 【图像处理】windows 10 + vs2015+ opencv3.0.0 +附加模块opencv_contrib编译和配置
- opencv 图像处理 形态学操作 腐蚀 膨胀 开闭运算 阈值二值化 图像卷积 图像金字塔 Sobel算子 Laplacian 算子 candy边缘检测 霍夫变换 直方图
- 数字图像处理 阈值分割
- (未实用 需多个函数配套使用)opencv3.0 函数学习 10——morphologyEx 形态学图像处理:开运算、闭运算、形态学梯度、顶帽、黑帽合辑
- 【OpenCV3图像处理】图像分割
- Python下opencv使用笔记(四)(图像的阈值处理)
- OpenCV之imgproc 模块. 图像处理(1)图像平滑处理 腐蚀与膨胀(Eroding and Dilating) 更多形态学变换 图像金字塔 基本的阈值操作
- 数字图像处理 - 图像分割 - 阈值处理
- opencv2-第五章-图像处理之阈值化
- 灰度图像--图像分割 阈值处理之平均阈值
- Matlab 图像分割 (阈值处理)
- openCV—Python(10)—— 图像阈值化处理
- opencv6.2-imgproc图像处理模块之图像尺寸上的操作及阈值
- OpenCV图像处理-区域分割-形态学操作应用
- opencv6.2-imgproc图像处理模块之图像尺寸上的操作及阈值
- 【OpenCV图像处理入门学习教程二】不同阈值二值化图像
- Opencv3.0-python的那些事儿:(四)、Opencv的图像阈值处理
- 用OpenCV随意写的对图像的处理10