信息处理报告.docx
- 文档编号:30280130
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:18
- 大小:1,015.07KB
信息处理报告.docx
《信息处理报告.docx》由会员分享,可在线阅读,更多相关《信息处理报告.docx(18页珍藏版)》请在冰豆网上搜索。
信息处理报告
信息处理的数学基础
实验一
班级:
信息1201班
学号:
07121028
成绩:
2015年3月25日
实验目的
本次实验与书中第二章及3.2节的部分内容有关,包括以下几个部分:
开始使用MATLAB;显示图像,理解图像的模型;使用图像的不同格式,理解图像压缩的意义;对图像做简单的操作
本次实验需要熟练使用以下几个MATLAB命令:
imread,imwrite,imshow,figure
准备工作
所有的实验基于MATLAB软件,希望读者在实验课开始前安装好MATLAB软件,建议使用MATLAB5.0以上版本。
一、开始使用MATLAB
我们默认已经安装好MATLAB软件。
在MATLAB的安装目录下面有一个work文件夹,这是MATLAB的默认工作目录。
我们将本目录(光盘下的“实验手册)下的实验图像一和程序源代码一两个文件夹拷入MATLAB下的work文件夹内。
实验图像一文件夹中放置了作为本次实验素材的原始图像,它们从光盘中的图像库文件夹中的部分文件,也可以在这里添加自己喜欢的其他图像文件
启动MATLAB软件,如图1所示。
图1MATLAB启动后
在图1所指示commandwindow窗口中键入cd实验图像一和initial1命令,如图2所示。
以后的操作都在”>>”后键入命令。
除非特别申明,命令后面加上“;”。
图2
二、显示图像
1.显示灰度图像
命令格式
Image=imread('C16.bmp');
imshow(Image,[])
此实验分两步完成,先用imread命令将图像文件读入图像像素矩阵Image,然后用imshow命令将该矩阵在屏幕上显示,如图3所示。
其中‘灰度图像文件名’必须是实验图像一文件夹中所包含灰度图像的名字。
例1
Image=imread('C16.bmp');
imshow(Image,[]);
Image
图3为执行的结果。
为简洁起见,在后面的例子中,我们隐去背景而直接留下图像。
2.彩色图像显示和分解
命令格式
Image=imread('C20.jpg’);
imshow(Image,[]);
RGB_heft('C20.jpg’);
imread和imshow也用来显示彩色图像,其中‘彩色图像文件名’必须是实验图像一文件夹中所包含彩色图像的名字。
RGB_heft把彩色图像分解为RGB图像。
其输入参数'彩色图像文件名'须为彩色文件,该程序将三维像素值矩阵分解成三个矩阵,并将它们分别显示出来,可以看到RGB文件的三原色分解。
例2:
Image=imread('C20.jpg');
imshow(Image,[]);
Image
例3:
彩色图像显示和分解
RGB_heft('C20.jpg');
I=imread('C20.jpg');
a=im2double(I);
fori=1:
1080
forj=1:
1920
r(i,j,1)=a(i,j,1);
r(i,j,2)=(0);
r(i,j,3)=(0);
end
end;
fori=1:
1080
forj=1:
1920
g(i,j,2)=a(i,j,2);
g(i,j,1)=(0);
g(i,j,3)=(0);
end
end;
fori=1:
1080
forj=1:
1920
b(i,j,3)=a(i,j,3);
b(i,j,1)=(0);
b(i,j,2)=(0);
end
end;
subplot(2,2,1),imshow(I);
subplot(2,2,2),imshow(r);
subplot(2,2,3),imshow(g);
subplot(2,2,4),imshow(b);
3)显示图像的大小
命令格式:
[heightwidth]=size(Image)
返回图像的高height和宽widthImage=imread('输入图像名');
,注意第二句程序化不要分号。
例4
Image=imread('C5.bmp');
[heightwidth]=size(Image)
返回128和128。
4)显示灰度图像的一个像素的灰度值
命令格式:
get_pixel('图像文件名',x,y)
其中x,y为像素在图像中的坐标值,返回该像素的灰度值。
注意不要分号。
例5
get_pixel('I5.bmp',21,46)
返回结果为168。
2.3电影分解与显示
1)电影的显示
命令格式:
mov=aviread('动态图像名字.avi');
movie(mov,n,fps);
程序aviread将AVI(AudioVideoInterleaved)文件的帧读出,然后movie将该电影文件在MATLAB的对话框里放映出来。
movie(mov,n,fps)命令中第2个参数n为播放次数,第3个参数fps为每秒播放的帧数。
例6
mov=aviread('Anna.avi');
movie(mov,1,12);
三、图像格式的转换
命令格式
Image=imread('C5.bmp');
Iwrite(Image,‘C5.bmp’);
这两个命令把bmp格式的图像转换为JPEG格式的图像,对灰度和彩色图像都适用。
在输入和输出的图像名字需要加上后缀,这个后缀代表了不同的图像格式。
其中图像格式的内容在书中2.6节介绍。
例7
Image=imread('C5.bmp');
imwrite(Image,‘C5.jpg’);
我们观察bmp格式的图像和JPEG格式的图像的差别,并比较这两个文件的大小,其中bmp格式的图像是压缩前的图像,JPEG格式的图像是压缩后的图像,可以计算出它们的压缩比。
四基本操作
1)图像的反转显示
命令格式:
I=imread('C20.jpg');
JJ=imadjust(I,[01],[10]);
imshow(JJ,[])
图像的反转类似于照片的底片,将灰度值为i的像素点按255-i(二值图像按1-i)显示。
JJ就是得到的反转图像。
例8
I=imread('C21.jpg');
JJ=imadjust(I,[01],[10]);
imshow(I,[]);
figure;
imshow(JJ,[])
其中figure命令是MATLAB的系统函数,为了实现同时显示两幅图像。
图5中同时显示了原图像和反转图像,可以作比较。
图5
2)图像直方图
图像直方图和图像直方图均衡化的概念见书上3.2节。
命令格式
Image=imread('输入图像名');
imhist(Image);
例9
Image=imread('I');
imhist(Image);
【命令】
I=imread('I2.bmp');
imshow(I)
figure,imhist(I)
3)图像灰度的变换
命令格式
Image=imread('输入图像名');
Image=g(Image)
通过Image=g(Image)的语句可以实现对图像每个像素值的g变换,即
对于所有的像素[I,J]
Image[I,J]=g(Image[I,J])
例10
Image=imread('C21.jpg');
Image=0.5*double(Image);
imshow(Image);
imshow(uint8(Image));
figure;
imhist(Image)
在本例中我们把图像的像素值都变换为原来的1/2,图像质量变差。
4)直方图均衡化
直方图均衡化是图像增强的一个重要方法,人们已经提出了很多直方图均衡化和规定化的算法,其中基于累积分布函数的算法最为经典。
Histeq命令就是基于这种经典的算法。
命令格式:
Image=imread('C21.jpg');
Out_Image=histeq(Image);
Out_Image为均衡化后的图像。
例11
Image=imread('I18.bmp');
Out_Image=histeq(Image);
imshow(Out_Image);
5)结果比较
我们将2)3)4)结合使用,并进行比较,为了便于观察直方图均衡化前后图像的对比度的变化,先产生一幅质量较差(偏暗或者偏亮或灰度值集中)的图像,均衡化后,原图像的对比度得到了增强,原图像的直方图相应地变得平坦,灰度值均匀地分布在0~255。
例12
命令如下:
I=imread('I2.bmp');
J=histeq(I);
imshow(I)
figure,imshow(J)
figure,imhist(I)
figure,imhist(J)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息处理 报告