MATLAB数字图像处理(二)直方图
来源:互联网 发布:java实现多线程并发 编辑:程序博客网 时间:2024/06/16 16:16
(一) 绘制直方图
概念:这里的直方图,主要指图像灰度直方图,它在图像处理中有一定的应用。比如用直方图均衡来增强图像的对比度。
图像灰度直方图:一副数字图像有[0~255]灰度级,直方图定义如下:
其中,
归一化直方图定义如下:
即:第k个灰度级出现的数量,比上所有灰度级数量总和。
MATLAB中绘制图像灰度直方图:
函数imhist():
h=imhist(img,b);
其中:img是输入图像,b是容器,容器简单说就是分几块显示。设置2,则分成两块显示。设置3,则3块。默认为256即256个灰度级。
若要得到归一化后的图像,那么可利用如下语句。
h_normal=imhist(img,b)/numel(img);
其中numel(img)是求出所有灰度级数量总和,即图像总像素数。
接下来,让我们实际生成一副直方图。
代码如下:
f=imread('Moon Phobos.tif');%读入图片imhist(f)%图像 直方图axis([0 255 0 6000])%设置x、y轴坐标范围
- 1
- 2
- 3
通过直方图我们可以看书,图像的灰度级主要集中在两端,分布不够均匀,造成了原图较暗的部分看不清楚。下面将利用直方图均衡化,解决该问题。
(二)直方图均衡化
直方图均衡化的概念,其实很简单,具体概念就不说了。直接说个人理解。
将
设有 图像共有4个灰度级且归一化,为1/4占50个,2/4占50个,3/4占100个,1占50个。直方图归一化1/4~0.2,2/4~0.2,3/4~0.4,1~0.2。
首先1/4灰度级为,
2/4灰度级,
3/4灰度级,
1灰度级 ,
最后求解的灰度级为1/4~0.2,2/4~0.2,1~0.6。
在MATLAB中,函数histeq(f,nlev)可以完成此功能。其中个f为输入图像,nlev为输出图像灰度级。
实例如下:
f=imread('Moon Phobos.tif');figure,imshow(f),title('原图');figure,imhist(f),title('直方图')g=histeq(f,256);figure,imshow(g),title('增强后');figure,imhist(g),title('直方图均衡');
- 1
- 2
- 3
- 4
- 5
- 6
可以看到,原来有些背面看不见的纹路也可以用观察到了。
- MATLAB数字图像处理(二)直方图
- MATLAB数字图像处理(二)直方图
- MATLAB数字图像处理(一)图像直方图
- MATLAB数字图像处理(二)
- 使用 matlab 数字图像处理(二)—— 直方图均衡化(极简实现)
- 使用 matlab 数字图像处理(一)—— 归一化直方图
- MATLAB数字图像处理(一)直方图均衡化
- MATLAB数字图像处理(一)局部直方图均衡化
- 数字图像处理-空间域图像增强(二)(直方图)
- 数字图像处理(2)--直方图
- 数字图像处理之二直方图规定化
- 基于MATLAB的数字图像处理之直方图处理
- 《数字图像处理》--直方图处理
- matlab 数字图像处理 图像增强 空域 直方图修正
- 数字图像处理----直方图
- 【数字图像处理】直方图均衡
- 数字图像处理(二)
- 数字图像处理(MATLAB版)---读书笔记二
- 元组
- C#与Excle
- eclipse安装JAVA反编译插件
- 数论——扩展欧几里得算法
- hihoCoder1584
- MATLAB数字图像处理(二)直方图
- linux进程间通信
- 二叉树的三种遍历
- 第三周项目四(1)
- Centos 7下nginx+lua+redis的访问控制
- 利用Timer类实现获取验证码并倒计时的功能
- 51nod-1202-子序列个数
- go环境搭建-eclipse
- JAVA运行时数据区域