matlab图像的灰度变换

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二 图像的灰度变换

一、实验目的

1、 理解数字图像处理中点运算的基本作用;

2、 掌握对比度调整与灰度直方图均衡化的方法。

二、实验原理

1、对比度调整

如果原图像f (x , y )的灰度范围是[m , M ],我们希望对图像的灰度范围进行线性调整,调整后的图像g (x , y )的灰度范围是[n , N ],那么下述变换:

[]n m y x f m

M n N y x g +---=),(),(就可以实现这一要求。 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 语言直接编程也很容易实现灰度图像的对比度调整。但运算的过程中应当注意以下问题,由于我们读出的图像数据一般是uint8型,而在MATLAB 的矩阵运算中要求所有的运算变量为double 型(双精度型)。因此读出的图像数据不能直接进行运算,必须将图像数据转换成双精度型数据。

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);

figure(1),subplot(2,2,4);imhist(B)

两次改变调整范围:

A=imread('E:\1\girl2.bmp','bmp');

C=imadjust(A,[0.35 0.65],[0 0.5]);

figure(2),subplot(2,2,1);imshow(C);

figure(2),subplot(2,2,2);imhist(C);

D=imadjust(A,[0.35 0.65],[0.2 0.8]);

figure(2),subplot(2,2,3);imshow(D);

figure(2),subplot(2,2,4);imhist(D)

图像的反转:

A=imread('E:\1\girl2.bmp','bmp');

E=imadjust(A,[0.35 0.65],[1 0]);

figure(3),subplot(1,2,1);imshow(E);

figure(3),subplot(1,2,2);imhist(E);

2、读出图像文件girl2.bmp,不调用imadjust函数,利用matlab语言直接编程实现图像

的对比度调整和图像的反转。

对比度调整:

A=imread('E:\1\girl2.bmp','bmp');

I=double(A);

J=I*1.5+40;

A1=uint8(J);

figure(4);subplot(1,2,1),imshow(A);

figure(4);subplot(1,2,2),imshow(A1);

反转:

[X,MAP]=imread('E:\1\girl2.bmp','bmp');

figure(5);imshow(X,1-MAP);

3、读取一幅灰度图像,用histeq函数将原始图像的灰度直方图均衡化,同时观察均衡

化后的图像与前面图像的差别,均衡化后的灰度直方图与前面的灰度直方图的区别。读取一幅索引图像,重复直方图均衡化处理,比较二者结果

灰度图像:

F=imread('E:\1\rice.tif','tif');

figure(6);subplot(2,2,1),imshow(F);

figure(6);subplot(2,2,2),imhist(F);

G=histeq(F);

figure(6);subplot(2,2,3),imshow(G);

figure(6);subplot(2,2,4),imhist(G);

相关文档
最新文档