实现思路
- 绘制原图像的灰度直方图,观察灰度直方图并估计两个峰值对应的灰度值范围
- 在两个峰值对应的灰度值范围内搜索谷底(最小值)对应的灰度值
- 将搜索到的谷底对应的灰度值作为灰度阈值,并对大于或小于灰度阈值的部分作相应的处理
将图像中所有灰度值大于阈值的像素点认为是组成物体的点,称为目标点;将图像中那些灰度值小于等于阈值的像素点认为是组成背景的点,称为背景点。
此时的处理方式可以有很多种,可根据实际情况进行调整:
- 阈值化的方法将灰度值大于等于阈值的像素点和小于阈值的像素点的灰度值分别设为0和1,具体看是从暗的背景中分割亮的物体还是亮的背景中分割暗的物体。
- 半阈值化的方法将比阈值大的亮像素的灰度值保持不变,而将阈值小的暗像素变为黑色;或是将比阈值小的暗像素的灰度值保持不变,而将比阈值大的亮像素变为白色。
实现效果
参考代码
使用了matlab中自带的cameraman图片进行处理,图片是二维的灰度图,size(im,1)、size(im,2)分别对应二维灰度图数