图像灰度变换报告
一.实验目的
1.学会使用Matlab ;
2.学会用Matlab 软件对图像进行灰度变换,观察采用各种不同灰度变换发法对最终图像效果的影响;
二.实验内容
1.熟悉Matlab 中的一些常用处理函数
读取图像:img=imread('filename');
//支持TIF,JPEG,GIF,BMP,PNG 等文件格式。
显示图像:imshow(img,G);
//G 表示显示该图像的灰度级数,如省略则默认为256。
保存图片:imwrite(img,'filename');
//不支持GIF 格式,其他与imread 相同。
亮度变换:imadjust(img,[low_in,high_in],[low_out,high_out]);
//将low_in 至high_in 之间的值映射到low_out 至high_out 之
间,low_in 以下及high_in 以上归零。
绘制直方图:imhist(img);
直方图均衡化:histeq(img,newlevel);
//newlevel 表示输出图像指定的灰度级数。
2.获取实验用图像:rice.jpg. 使用imread 函数将图像读入Matlab 。
3 .产生灰度变换函数T1,使得:
0.3r
r < 0.35 s =
0.105 + 2.6333(r – 0.35) 0.35 ≤ r ≤ 0.65
1 + 0.3(r – 1) r > 0.65 用T1对原图像rice.jpg 进行处理,使用imwrite 函数保存处理后的新图像。
4.产生灰度变换函数T2,使得:
s = 5.用T2对原图像rice.jpg 进行处理,使用imwrite 保存处理后的新图像。
6.分别用 s = r 0.6; s = r 0.4; s = r 0.3 对kids.tiff 图像进行处理。为简便起见,使用Matlab 中的imadjust 函数,最后用imwrite 保存处理后的新图像。
7.对circuit.jpg 图像实施反变换(Negative Transformation )。s =1-r; 使用imwrite 保存处理后的新图像。
8.对rice.jpg 图像实施灰度切片
15.9744r 5 r ≤ 0.5
(r – 0.5)0.2+ 0.12 r > 0.5
当0.2 ≤r ≤0.4时,将r置为0.6, 当r位于其他区间时, 保持其灰度与原图像一样。使用imwrite保存处理后的新图像。
9.利用灰度变换对Picture.jpg做增强处理,突出图中的人物,改善整个图像过于灰暗的背景。通过调节参数,观察变换后的图像与原始图像的变化,寻找出最佳的灰度变换结果。写出所采用的拉伸表达式。
三.实验结果与分析
1.采用T1函数
变换前变换后
函数图像
该方法采用分段函数对图像进行处理,对灰度值大的进行拉伸,使灰度增大,而灰度值小的,也进行拉伸,使灰度值更小,从而产生如图所示的结果。
2.采用T2函数
变换前变换后
T2函数图
T2函数也比较好的完成了T1函数所达到的效果,但是T2函数更加平滑一点,对于图像的边界处理的较好一些。
3.
变换前图像变换前灰度图
采用s = r0.6变换采用s = r0.4变换采用s = r0.3变换
三种函数的对比
三种变换方式都对图像的每一个像素灰度作线性拉伸,有效地改善图像的视觉效果,但如果选择的拉伸尺度过大,会引起图像的失真,利用s = r0.4变换是比较适合的。
4.对灰度图进行反变换