实验一 MATLAB与DIP基础.docx
- 文档编号:12750388
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:14
- 大小:249.31KB
实验一 MATLAB与DIP基础.docx
《实验一 MATLAB与DIP基础.docx》由会员分享,可在线阅读,更多相关《实验一 MATLAB与DIP基础.docx(14页珍藏版)》请在冰豆网上搜索。
实验一MATLAB与DIP基础
实验一MATLAB与DIP基本操作
PartI图像获取与显示
一、实验目的与要求
(一)用Matlab编程实现图像的获取和显示
本次实验包括以下几个部分:
1、开始使用MATLAB进行图像处理
2、图像的读写及显示操作,理解图像的不同格式
3、图像信息的获取
(二)本次实验要求完成:
1、掌握以下几个MATLAB命令:
imread,imshow,figure,imwrite,pixval,getpixel,whos,imfinfo,size,
2、显示灰度图像和彩色图像
3、多图显示
4、对灰度图像和彩色图像完成图像格式的转换(.bmp.jpg),并计算它们的压缩比
5、获取图像像素,尺寸等信息
二、实验内容与步骤
(一)图像显示和格式转换
1.显示灰度图像(IntensityImages)
命令格式
Image=imread('灰度图像文件名');
imshow(Image,[])
此实验分两步完成,先用imread命令将图像文件读入图像像素矩阵Image,然后用imshow命令将该矩阵在屏幕上显示,如图3所示。
其中‘灰度图像文件名’必须是work文件夹中所包含灰度图像的名字。
例1
Image=imread('I13.jpg');
imshow(Image,[]);
执行的结果如图1:
图1
2.彩色图像显示
命令格式
Image=imread('彩色图像文件名');
imshow(Image,[]);
imread和imshow也用来显示彩色图像,其中‘彩色图像文件名’必须是work工作文件夹中所包含彩色图像的名字。
例2
Image=imread('C4.bmp');
imshow(Image,[]);
3.多图像显示figure
命令格式:
Figure,imshow();
与图像显示命令一起使用
例3
>>h=imread('fig310b.jpg');
>>imshow(Image,[]);
>>figure,imshow(h,[]);
体会imshow函数参数的意义
4.图像格式的转换
常见的一些图形文件格式:
.tif/.tiff.jpg/.jpeg.gif.bmp.png.xwd
命令格式1
Image=imread('输入图像名');
imwrite(Image,‘输出图像名’);
这两个命令把bmp格式的图像转换为JPEG格式的图像,对灰度和彩色图像都适用。
在输入和输出的图像名字需要加上后缀,这个后缀代表了不同的图像格式。
命令格式2
imwrite(f,‘filename.jpg’,’quality’,q)//qisanintegerbetween0and100
如
imwrite(f,‘lovely.jpg’,’quality’,25)
例4
Image=imread('I1.bmp');
imwrite(Image,‘I1.jpg’);
imwrite(Image,‘I2.jpg’,’quality’,15);
我们观察bmp格式的图像和JPEG格式的图像的差别,并比较这两个文件的大小,其中bmp格式的图像是压缩前的图像,JPEG格式的图像是压缩后的图像,可以计算出它们的压缩比。
观察使用第二条imwrite命令后生成的图像的大小
(二)图像信息获取
5、whos
命令格式
Image=imread('输入图像名');
whosImage
6、imfinfo
命令格式
Image=imread('输入图像名');
imfinfofielname
7、size
命令格式
Image=imread('输入图像名');
size(Image)
[heightwidth]=size(Image)//返回图像的高height和宽width,注意第二句程序化不要分号。
例5.
>>Image=imread(‘saturn.tif);
>>size(Image);
>>[heightwidth]=size(Image)//返回128和128
>>whosImage
>>imfinfosaturn.tif
用上述命令观察处理前后的图像信息
8、显示灰度图像的一个像素的灰度值
命令格式:
get_pixel('图像文件名',x,y)
其中x,y为像素在图像中的坐标值,返回该像素的灰度值。
注意不要分号。
例6
>>get_pixel('I5.bmp',21,46)//返回结果为168。
9、显示像素指针
命令格式:
pixval
“pixval”isusedfrequentlytodisplaytheintensityvaluesofindividualpixels
interactively.
例7观察灰度图像像素指针值
>>I=imread(‘saturn.tif’)
>>imshow(I,[]);
>>pixval
例8观察彩色图像像素指针值
>>RGB=imread('lovely.jpg');
>>imshow(RGB);
>>pixval
三、注意事项
1、所有的实验基于MATLAB软件,建议使用MATLAB5.0以上版本。
在MATLAB的安装目录下面有一个work文件夹,这是MATLAB的默认工作目录。
实验素材请存放于该文件夹内。
2、熟练操作Matlab软件的基本功能,要求能顺利的运行上述命令。
3、理解各命令的作用,调试并运行程序,采用实验图像进行测试,观察并分析其结果。
4、教师对学生操作过程中遇到的问题做个别辅导。
5、通过完成本实验,对DIP基本原理加深理解。
6、实验图像自选。
7、对于不熟悉的Matlab命令,学会利用Matlab的联机帮助来解决。
四、实验思考题
1、图像被读取以后,在计算机中以何种形式存放?
2、在将BMP文件压缩成JPEG文件时,试计算灰度图像与彩色图像各自的压缩比,并思考为什么彩色图像的压缩比为什么比灰度图像的压缩比高?
3、imwrite是实现图像格式转换功能的命令,你知道有哪些基本的图像格式吗?
你平时见得比较多的是哪一种?
PartII图像处理基本变换
一、实验目的与要求
(一)用Matlab编程实现图像的基本变换
本次实验包括以下几个部分:
1、矩阵数组与图像之间的转换
2、各种图像数据类型之间的转换
3、图像的翻转变换
4、图像的灰度变换
5、彩色图像的分解
(二)本次实验要求完成:
1、掌握以下几个MATLAB命令:
logical,islogical,im2uint8,im2double,im2bw,mat2gray,flipped,imadjust,RGB_heft
2、实现数据与二值图像之间的转换
3、实现图像数据类型的转换
4、实现图像的翻转
5、实现图像的灰度变换
6、实现彩色图像的分解
二、实验内容与步骤
MATLAB支持四种类型的图像:
Intensityimages:
uint8-------[0,255]
uint16------[0,65535]
double-----floating-pointnumbers,butareintherange[0,1]byconvention
Binaryimages:
isalogicalarrayof0sand1s.
Indexedimages
RGBimages
(一)矩阵数组与二值图像之间的转换
1、logical
命令格式
logical(A)
//Anumericarrayisconvertedtobinaryusingfunctionlogical
2、islogical
命令格式
islogical(C)
//totestifanarrayislogical,ifCisalogicalarray,returna1,elsereturna0
例1
>>A=[01101]
>>B=logical(A)
>>islogical(A)
>>islogical(B)
(二)各类型图像之间转换
3、convertingbetweendataclasses
命令格式
B=data_class_name(A)
例
B=double(A)
D=uint8(C)
4、im2uint8
命令格式
im2uint8(图像名称)
//setsto0allvaluesintheinputthatarelessthan0,setsto255allvaluesintheinputthataregreaterthan1,andmultipliesallothervaluesby255(四舍五入)
例2
>>f=[-0.50.5;0.751.5]
>>g=im2uint8(f)
5、im2double
命令格式
im2double(图像名称)
//intoadoublearraywithvaluesintherange[0,1],dividingeachvalueoftheinputarrayby255(uint8)orby65535(uint16).
例3
>>h=uint8([2550;128200]);
>>g=im2double(h)
6、mat2gray
命令格式
mat2gray(图像名称)
//convertinganarbitaryofclassdoubletoanarrayofclassdoublescaledtotherange[0,1]
7、im2bw
命令格式
g=im2bw(f,T)
//produceabinaryimagegfromanintensityimagef,bythresholding.Thasvaluesin[0,1]
例4
>>f=[12;34];
>>g=mat2gray(f)
>>gb=im2bw(g,0.6)//usingathreshold(阈值)ofvalue0.6]
(三)图像的翻转
8、行矢量操作(理解下面命令、参数意义)
例5
>>v=[13579]
>>v
(2)
>>w=v.’
>>v(1:
3)
>>v(2:
4)
>>v(3:
end)
>>v(:
)
>>v(1:
end)
>>v(1:
2:
end)
>>v(end:
-2:
1)
>>v([145])
观察并思考上述程序的作用
9、矩阵索引操作
例6
>>A=[123;456;789]
>>A(2,3)
>>C3=A(:
3)
>>R2=A(2,:
)
>>T2=A(1:
2,1:
3)
>>B=A;B(:
3)=0
>>A(end,end)
>>A(end,end-2)
>>A(2:
end,end:
-2:
1)
>>D=logical([100;001;000])
>>A(D)
>>s=sum(A(:
))
观察并思考上述程序的作用
10、翻转操作
例7
>>fp=fliplr(end:
-1:
1,:
);
>>fc=fliplr(257:
768,257:
768)
>>fc=fliplr(1:
2:
end,1:
2end)
>>plot(fliplr(512,;))
>>K=size(A,1)
>>plot(fliplr(size(f,1)/2,:
))
>>D=ndims(A);
(四)图像的灰度变换
11、imadjust
命令格式
g=imadjust(f,[low_inhigh_in],[low_out,high_out],gamma)
(1)灰度图像的反转(负片显示)
命令格式
I=imread(‘图像文件名’)
JJ=imadjust(I,[01],[10]);
imshow(JJ,[])
图像的反转类似于照片的底片,将灰度值为i的像素点按255-i(二值图像按1-i)显示。
JJ就是得到的反转图像。
例8
>>I=imread('fig219a.jpg’)
>>JJ=imadjust(I,[01],[10]);
>>imshow(I,[]);
>>figure;
>>imshow(JJ,[])
其中figure命令是MATLAB的系统函数,为了实现同时显示两幅图像。
图1-图4中同时显示了原图像和反转图像,可以作比较。
图1图2
图3图4
(2)imadjust的其他应用
例9.彩色图像
>>f=imread(‘lovely.jpg’);
>>g2=imadjust(f,[0.5,0.75],[0,1])
>>imshow(f),figure,imshow(g2)
>>g3=imadjust(f,[],[],2);
>>imshow(g2),figure,imshow(g3)
效果见图5-图6
图5图6
(五)增强图像对比度
10、对比度增强
对数与对比度增强变换-----压缩动态范围
命令格式
g=c*log(1+double(f))
gs=im2uint8(mat2gray(g));
g=1./(1+(m./(double(f)+eps)).^E)
gs=im2uint8(mat2gray(log(1+double(f))));
imshow(f),figure,imshow(g)
效果图见图7-图8
图7图8
三、注意事项
1、所有的实验基于MATLAB软件,建议使用MATLAB5.0以上版本。
在MATLAB的安装目录下面有一个work文件夹,这是MATLAB的默认工作目录。
实验素材请存放于该文件夹内。
2、熟练操作Matlab软件的基本功能,要求能顺利的运行上述命令。
3、理解各命令的作用,调试并运行程序,采用实验图像进行测试,观察并分析其结果。
4、教师对学生操作过程中遇到的问题做个别辅导。
5、通过完成本实验,对DIP基本原理加深理解。
6、实验图像自选。
7、对于不熟悉的Matlab命令,学会利用Matlab的联机帮助来解决。
四、实验思考题
1、主有哪几种类型的图像?
显示四种类型图像的详细信息,观察其异同。
2、反转命令imadjust的基本原理如何?
如何实现图像的反转。
灰度图像和二值图像是否一致?
3、对数法增强对比度的原理是什么?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验一 MATLAB与DIP基础 实验 MATLAB DIP 基础