实验二__图像的灰度变换增强

上传人:简****9 文档编号:102550662 上传时间:2019-10-03 格式:DOC 页数:6 大小:159.51KB
返回 下载 相关 举报
实验二__图像的灰度变换增强_第1页
第1页 / 共6页
实验二__图像的灰度变换增强_第2页
第2页 / 共6页
实验二__图像的灰度变换增强_第3页
第3页 / 共6页
实验二__图像的灰度变换增强_第4页
第4页 / 共6页
实验二__图像的灰度变换增强_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《实验二__图像的灰度变换增强》由会员分享,可在线阅读,更多相关《实验二__图像的灰度变换增强(6页珍藏版)》请在金锄头文库上搜索。

1、实验二 图像的灰度变换增强一、实验目的1、 理解数字图像处理中点运算的基本作用;2、 掌握对比度调整与灰度直方图均衡化的方法。二、实验原理1、对比度调整如果原图像f(x, y)的灰度范围是m, M,我们希望对图像的灰度范围进行线性调整,调整后的图像g(x, y)的灰度范围是n, N,那么下述变换:就可以实现这一要求。MATLAB图像处理工具箱中提供的imadjust函数,可以实现上述的线性变换对比度调整。imadjust函数的语法格式为:J = imadjust(I,low_in high_in, low_out high_out)J = imadjust(I, low_in high_in,

2、 low_out high_out)返回原图像I经过对比度调整后的新图像J。其中low_in high_in为原图像中要变换的灰度范围,low_out high_out指定了变换后的灰度范围,灰度范围可以用 空矩阵表示默认范围,默认值为0, 1(注意:灰度范围只能在01之间)。例:I = imread(pout.tif);J = imadjust(I, 0.3 0.7, ); %输出灰度范围为默认范围,即为0, 1imshow(I), figure, imshow(J) 不使用imadjust函数,利用matlab语言直接编程也很容易实现灰度图像的对比度调整。但运算的过程中应当注意以下问题,由

3、于我们读出的图像数据一般是uint8型,而在MATLAB的矩阵运算中要求运算变量为double型(双精度型)。因此读出的图像数据不能直接进行运算,必须将图像数据转换成双精度型数据。MATLAB中提供了这样的图像数据类型转换函数:im2double函数,其语法格式为:I2 = im2double(I1)该函数将I1的各元素除以255后转换为01内的双精度型数据。运算之后的图像数据再显示时可以再转化成uint8型,格式为:I3 = im2uint8 (I2)该函数将I2的各元素乘以255后转换为0255内的uint8型数据,其中小于0的元素均设置为0,大于255的元素均设置为255。线性运算示例:

4、K1=imread(pout.tif);I=im2double(K1);J=I*0.43;K2=im2uint8(J);subplot(1,2,1), imshow(K1)subplot(1,2,2), imshow(K2)非线性运算示例:K1=imread(pout.tif);I=double(K1);Dm=double(max(max(K1);J=( Dm/2)*(1+(1/sin(pi/4)*sin(pi/2)*(I/Dm)-0.5);K2=uint8(J);subplot(1,2,1), imshow(K1)subplot(1,2,2), imshow(K2)注意:函数double、u

5、int8与im2double、im2uint8不同,它们仅仅对数据作类型转换,而不对数据作范围限定。2、直方图均衡化直方图均衡化的目的是将原始图像的直方图变为均衡分布的形式,即将一已知灰度概率密度分布的图像,经过某种变换变成一幅具有均匀灰度概率密度分布的新图像,从而改善图像的灰度层次。MATLAB图像处理工具箱中提供的histeq函数,可以实现直方图的均衡化。对于灰度图像,histeq函数的基本调用格式为J=histeq(I, n)该函数返回原图像I经过直方图均衡化处理后的新图像J。n为指定的均衡化后的灰度级数,缺省值为64。例:I = imread(pout.tif);J = histeq(

6、I);subplot(2,2,1), imshow(I);subplot(2,2,2), imhist(I, 64);subplot(2,2,3), imshow(J);subplot(2,2,4), imhist(J, 64); 对于索引图像,调用格式为:Newmap=histeq(X, map)返回值Newmap将是输出图像的新的调色板。利用matlab语言直接编程也很容易实现直方图均衡化处理。三、实验内容及要求1、用MATLAB在自建的文件夹中建立example2.m程序文件。在这个文件程序中,将girl2.bmp(或pout.tif、lenna2.bmp等)一幅灰度图像文件读出,显示它

7、的图像及灰度直方图(可以发现其灰度值集中在一段区域)。用imadjust函数将它的灰度值调整到0,1之间,并观察调整后的图像与原图像的差别,调整后的灰度直方图与原灰度直方图的区别;改变灰度值调整范围,观察调整后的图像的变化及其与原图像的差别,调整后的灰度直方图的变化及其与原灰度直方图的区别。进一步利用改变图像灰度值调整范围,实现图像的明暗反转,观察比较原图与反转后的图像。程序:A=imread(E:1girl2.bmp,bmp);figure(1),subplot(2,2,1);imshow(A);figure(1),subplot(2,2,2);imhist(A);B=imadjust(A,

8、0.350.65,);figure(1),subplot(2,2,3);imshow(B);figure(1),subplot(2,2,4);imhist(B)域)。用imadjust函数将它的灰度值调整到0,1之间,并观察调整后的图像与原图像的差别,调整后的灰度直方图与原灰度直方图的区别;改变灰度值调整范围,观察调整后的图像的变化及其与原图像的差别,调整后的灰度直方图的变化及其与原灰度直方图的区别;进一步利用改变灰度值调整范围,实现图像的反转。程序:A=imread(E:1girl2.bmp,bmp);figure(1),subplot(2,2,1);imshow(A);figure(1),

9、subplot(2,2,2);imhist(A);B=imadjust(A,0.350.65,);figure(1),subplot(2,2,3);imshow(B);figure(1),subplot(2,2,4);imhist(B)两次改变调整范围:A=imread(E:1girl2.bmp,bmp);C=imadjust(A,0.350.65,00.5);figure(2),subplot(2,2,1);imshow(C);figure(2),subplot(2,2,2);imhist(C);D=imadjust(A,0.350.65,0.20.8);figure(2),subplot(

10、2,2,3);imshow(D);figure(2),subplot(2,2,4);imhist(D)域)。用imadjust函数将它的灰度值调整到0,1之间,并观察调整后的图像与原图像的差别,调整后的灰度直方图与原灰度直方图的区别;改变灰度值调整范围,观察调整后的图像的变化及其与原图像的差别,调整后的灰度直方图的变化及其与原灰度直方图的区别;进一步利用改变灰度值调整范围,实现图像的反转。程序:A=imread(E:1girl2.bmp,bmp);figure(1),subplot(2,2,1);imshow(A);figure(1),subplot(2,2,2);imhist(A);B=im

11、adjust(A,0.350.65,);figure(1),subplot(2,2,3);imshow(B);figure(1),subplot(2,2,4);imhist(B)两次改变调整范围:A=imread(E:1girl2.bmp,bmp);C=imadjust(A,0.350.65,00.5);figure(2),subplot(2,2,1);imshow(C);figure(2),subplot(2,2,2);imhist(C);D=imadjust(A,0.350.65,0.20.8);figure(2),subplot(2,2,3);imshow(D);figure(2),su

12、bplot(2,2,4);imhist(D)域)。用imadjust函数将它的灰度值调整到0,1之间,并观察调整后的图像与原图像的差别,调整后的灰度直方图与原灰度直方图的区别;改变灰度值调整范围,观察调整后的图像的变化及其与原图像的差别,调整后的灰度直方图的变化及其与原灰度直方图的区别;进一步利用改变灰度值调整范围,实现图像的反转。程序:A=imread(E:1girl2.bmp,bmp);figure(1),subplot(2,2,1);imshow(A);figure(1),subplot(2,2,2);imhist(A);B=imadjust(A,0.350.65,);figure(1)

13、,subplot(2,2,3);imshow(B);figure(1),subplot(2,2,4);imhist(B)两次改变调整范围:A=imread(E:1girl2.bmp,bmp);C=imadjust(A,0.350.65,00.5);figure(2),subplot(2,2,1);imshow(C);figure(2),subplot(2,2,2);imhist(C);D=imadjust(A,0.350.65,0.20.8);figure(2),subplot(2,2,3);imshow(D);figure(2),subplot(2,2,4);imhist(D)图像的反转:A

14、=imread(E:1girl2.bmp,bmp);E=imadjust(A,0.350.65,10);figure(3),subplot(1,2,1);imshow(E);figure(3),subplot(1,2,2);imhist(E);2、(选做内容)读取一幅灰度图像,不调用imadjust函数,利用MATLAB语言直接自编程序实现图像的对比度调整。对比度调整:A=imread(E:1girl2.bmp,bmp);I=double(A);J=I*1.5+40;A1=uint8(J);figure(4);subplot(1,2,1),imshow(A);figure(4);subplot

15、(1,2,2),imshow(A1);反转:X,MAP=imread(E:1girl2.bmp,bmp);figure(5);imshow(X,1-MAP);3、 读取一幅灰度图像,用histeq函数将原始图像的灰度直方图均衡化,同时观察均衡化后的图像与前面图像的差别,均衡化后的灰度直方图与前面的灰度直方图的区别。灰度图像:F=imread(E:1rice.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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号