实验二 图像的灰度变换 一、实验目的 1、 理解数字图像处理中点运算的基本作用; 2、 掌握对比度调整与灰度直方图均衡化的方法。 二、实验原理 1、对比度调整 如果原图像 f(x, y)的灰度范围是[m, M],我们希望对图像的灰度范围进行线性调整,调整后的图像 g(x, y)的灰度范围是[n, N],那么下述变换: nmyxfmMnNyxg),(),(就可以实现这一要求。 MATLAB 图像处理工具箱中提供的 imadjust 函数,可以实现上述的线性变换对比度调整。imadjust 函数的语法格式为: J = imadjust(I,[low_in high_in], [low_out high_out]) J = imadjust(I, [low_in high_in], [low_out high_out])返回原图像I经过直方图调整后的新图像 J,[low_in high_in]为原图像中要变换的灰度范围,[low_out high_out]指定了变换后的灰度范围,灰度范围可以用 [ ] 空矩阵表示默认范围,默认值为[0, 1]。 不使用 imadjust 函数,利用 matlab 语言直接编程也很容易实现灰度图像的对比度调整。但运算的过程中应当注意以下问题,由于我们读出的图像数据一般是 u int8 型,而在 MATLAB 的矩阵运算中要求所有的运算变量为 dou ble 型(双精度型)。因此读出的图像数据不能直接进行运算,必须将图像数据转换成双精度型数据。 2、直方图均衡化 直方图均衡化的目的是将原始图像的直方图变为均衡分布的形式,即将一已知灰度概率密度分布的图像,经过某种变换变成一幅具有均匀灰度概率密度分布的新图像,从而改善图像的灰度层次。 MATLAB 图像处理工具箱中提供的 histeq 函数,可以实现直方图的均衡化。 三、实验内容及要求 1、 用 MATLAB 在自建的文件夹中建立 example2.m 程序文件。在这个文件的程序中,将girl2.bmp 图像文件读出,显示它的图像及灰度直方图(可以发现其灰度值集中在一段区域)。用 imadjust 函数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰度直方图与原灰度直方图的区别;改变灰度值调整范围,观察调整后的图像的变化及其与原图像的差别,调整后的灰度直方图的变化及其与原灰度直方图的区别;进一步利用改变灰度值调整范围,实现图像的反转。 程序: A=imread('E:\1\girl2.bmp','bmp'); figure(1),subplot(2,2,1);imshow (A); figure(1),subplot(2,2,2);imhist(A); B=imadjust(A,[0.35 0.65],[]); figure(1),subplot(2,2,3);imshow (B); f...