实验一 MATLAB与DIP基础文档格式.docx
《实验一 MATLAB与DIP基础文档格式.docx》由会员分享,可在线阅读,更多相关《实验一 MATLAB与DIP基础文档格式.docx(14页珍藏版)》请在冰点文库上搜索。
I13.jpg'
imshow(Image,[]);
执行的结果如图1:
图1
2.彩色图像显示
命令格式
彩色图像文件名'
imshow(Image,[]);
imread和imshow也用来显示彩色图像,其中‘彩色图像文件名’必须是work工作文件夹中所包含彩色图像的名字。
例2
C4.bmp'
3.多图像显示figure
命令格式:
Figure,imshow();
与图像显示命令一起使用
例3
>
h=imread('
fig310b.jpg'
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
I1.bmp'
imwrite(Image,‘I1.jpg’);
imwrite(Image,‘I2.jpg’,’quality’,15);
我们观察bmp格式的图像和JPEG格式的图像的差别,并比较这两个文件的大小,其中bmp格式的图像是压缩前的图像,JPEG格式的图像是压缩后的图像,可以计算出它们的压缩比。
观察使用第二条imwrite命令后生成的图像的大小
(二)图像信息获取
5、whos
Image=imread('
whosImage
6、imfinfo
imfinfofielname
7、size
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,[]);
>
例8观察彩色图像像素指针值
RGB=imread('
lovely.jpg'
imshow(RGB);
三、注意事项
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、彩色图像的分解
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(四舍五入)
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(:
)
2:
v(end:
-2:
1)
v([145])
观察并思考上述程序的作用
9、矩阵索引操作
A=[123;
456;
789]
A(2,3)
C3=A(:
3)
R2=A(2,:
T2=A(1:
2,1:
B=A;
B(:
3)=0
A(end,end)
A(end,end-2)
A(2:
end,end:
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:
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’)
imshow(I,[]);
figure;
其中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、主有哪几种类型的图像?
显示四种类型图像的详细信息,观察其异同。
2、反转命令imadjust的基本原理如何?
如何实现图像的反转。
灰度图像和二值图像是否一致?
3、对数法增强对比度的原理是什么?