数字图像处理实验讲义16学时2011年版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验1 图像基本操作
1. 实验要求
在MATLAB环境下完成下列操作:
读入图像;
保存图像;
图像的显示方法
2. 实验类型验证型
3. 实验时间2学时
4. 实验方法
使用函数imread可以将图像读入MATLAB环境,imread的语法为
imread( …filename‟ )
imread所支持的文件格式包括:
TIFF---------- .tif .tiff
JPEG-------- .jpg .jpeg
GIF----------- .gif
BMP--------- .bmp
PNG--------- .png
XWD--------- .xwd
使用函数imwrite可以将图像保存在磁盘上,imwrite的语法为
imwrite( f, …filename‟ )
使用函数size可以察看图像大小,size的语法为
size( )
使用函数imfinfo可以察看图像信息,imfinfo的语法为
imfinfo filename
使用函数imshow可以显示图像缩略图,imshow的语法为
imshow ( )
使用函数imview可以显示图像原图,imview的语法为,不同的是imview是一个工具,可以完成一些基本的图像操作
imview ( )
使用函数figure可以开辟一个新的窗口,figure的语法为
figure, imshow ( )
figure, imview ( )
figure, plot ( )
…………………
使用数据类型转换函数可以转换图像数据类型,如
im2uint8 ( ) ------------------ convert image to uint8
im2uint16 ( ) ---------------- convert image to uint16
mat2gray ( ) ----------------- convert image to double, range[0 , 1]
im2double ( ) ---------------- convert image to double
im2bw ( ) --------------------- convert image to logical
5. 实验过程
使用函数imread打开一幅灰度图像(fig0309abc.jpg),使用函数imwrite将图像另存为不同的文件名;在此过程中观察图像矩阵的形式,并用图像矩阵的索引法,观察并记录5×5的矩阵片断;
使用函数size察看图像大小,使用函数imfinfo察看图像信息;记录图像信息;
分别使用函数imshow和函数imview显示图像;记录两种方式的区别;
使用函数imread打开一幅彩色图像(start.jpg),观察图像矩阵的形式;并分别观察和记录RGB三色5×5的矩阵片断;
使用函数rgb2gray将彩色图像转换为灰度图像;
使用im2uint8和im2double转换图像的数据类型,记录5×5矩阵片断在转换前后的变化。
实验2 图像点运算
1.实验要求
在MATLAB环境下完成下列操作:
读入图像;
图像灰度变换方法;
灰度的对数扩展法;
绘制灰度直方图;
直方图均衡法;
任意灰度变换实现;
2.实验类型验证型
3.实验时间2学时
4.实验方法
使用函数imadjust可以实现图像灰度变换,imadjust的语法为
imadjust ( f, [ low_in high_in ], [ low_out high_out ], gamma )
gamma所表示的意义:
>1 ---------- 凹曲线
<1 ---------- 凸曲线
=1 ---------- 直线
灰度的对数扩展法g = c*log( 1+ double( f ) )
目的是使亮区域得到抑制,暗区域灰度得到均匀增强
使用语句
im2uint8(mat2gray( log( 1+ double (f) ) ) )
其中系数c通过mat2gray函数自动调整
灰度直方图反映图像的灰度分布情况,即亮度分布情况;
它说明不同灰度的像素个数或分布概率
使用函数imhist绘制灰度直方图,imhist的语法为
h = imhist( f );
figure, imhist( f );
figure, plot( h );
figure, stem( h );
figure, bar( h );
由于拍摄和处理的原因,导致图像的灰度分布范围过小;
最大熵原理指出:数据满足均匀分布时,信息量最大;
依据这个原理,通过灰度直方图均衡化将图像灰度分布扩展到整个灰度分布范围,可以使图形信息量最大,即使使得图像对比度增强。
使用函数histeq对图像进行直方图均衡,histeq的语法为
g = histeq( f, nlev ); % nlev为输出的灰度级数,通常取256,默认64
figure, imhist(g);
任意灰度变换需要进行分段计算,如图1
g = β*(f-a)+ga , a≤f<b ;
γ*(f-b)+gb , b≤f≤c ;
5.实验过程
使用函数imread打开一幅灰度图像(fig0222b.jpg),使用函数imadjust实现图像灰度变换;
分别使用:
g1= imadjust ( f, [ 20 255 ], [ 0 255 ], 0.5 );
g2= imadjust ( f, [ 20 255 ], [ 0 255 ], 1 );
g3= imadjust ( f, [ 20 255 ], [ 0 255 ], 2 );
g4= imadjust ( f, [ 0 255 ], [ 255 05 ], 1 );
figure, imshow(g1);
figure, imshow(g2);
figure, imshow(g3);
figure, imshow(g4);
观察并记录四种变换差别。(注意:请将方括号内的整数需要手工折算成浮点数)
使用函数imread打开一幅灰度图像(fig0305.tif),使用如下语句进行对数扩展
figure, imshow(f2);
g5= im2uint8(mat2gray(log(1+double (f2))));
figure, imshow(g5);
观察并记录均衡前后的差别。
使用函数imread打开一幅灰度图像(fig0222b.jpg),使用函数imhist绘制灰度直方图,直方图有四种表现形式
h = imhist( f3 );
figure, imhist( f3 );
figure, plot( h );
figure, stem( h );
figure, bar( h );
观察四种直方图的差别。
使用函数imread打开一幅灰度图像(fig0308.tif),说明这幅图像直方图存在的问题。