多媒体图像处理第1次实验报告.docx
《多媒体图像处理第1次实验报告.docx》由会员分享,可在线阅读,更多相关《多媒体图像处理第1次实验报告.docx(22页珍藏版)》请在冰豆网上搜索。
多媒体图像处理第1次实验报告
实验一Matlab图像处理基础
一、实验目的
1.了解Matlab的基本功能及操作方法
2.练习图像读写和显示函数的使用方法
3.掌握Matlab支持的五类图像的显示方法(灰度、索引、黑白、彩色等)
4.熟悉常用的图像文件格式与格式转换;
二、实验内容
1.图像的读写
A)图像读
RGB=imread('ngc6543a.jpg');
imshow(RGB);
B)图像写
先从一个.mat文件中载入一幅图像,然后利用图像写函数imwrite,创建一个.bmp文件,并将图像存入其中。
loadclown;
whos;
imwrite(X,map,'clown.bmp');
imshow('clown.bmp');
C)图像文件格式转换
bitmap=imread('clown.bmp','bmp');
imwrite(bitmap,'clown.png','png');
imshow('clown.png');
转换前clown.bmp图像如下:
转换后.png格式的图像如下:
D)图像综合操作
利用matlab提供的函数将图像读入;编写程序实现对给定图像进行一定比例的放大和缩小处理,在Mfile编辑器中写入以下程序,全速执行:
I=imread('lena.tif');%读入图像
J=imresize(I,10);%放大10倍
K=imresize(I,0.1);%缩小10倍
L=imrotate(I,-10,'bilinear','crop');%逆时针旋转10°
subplot(2,2,1),imshow(I),title('原图');%原图
subplot(2,2,2),imshow(J),title('放大10');%放大10倍
subplot(2,2,3),imshow(K),title('缩小0.1');%缩小10倍
subplot(2,2,4),imshow(L),title('逆时针旋转10°');%逆时针转10°
图像处理结果如下:
2.图像显示
E)二进制图像的显示
BW1=zeros(20,20);%创建仅包含0/1的双精度图像
BW1(2:
2:
18,2:
2:
18)=1;
imshow(BW1,'notruesize');
BW1图像显示如下:
whos
BW2=uint8(BW1);
figure,imshow(BW2,'notruesize');
BW2图像显示如下:
BW3=BW2~=0;%逻辑标志置为on
figure,imshow(BW3,'notruesize')
BW3图像显示如下:
whos
BW=imread('circles.png');
imshow(BW);
BW图像显示如下:
figure,imshow(~BW);
BW图像取反显示如下:
figure,imshow(BW,[100;001]);
BW图像以特定颜色显示如下:
F)灰度图像的显示
I=imread('testpat1.tif');
J=filter2([12;-1-2],I);
imshow(I)
figure,imshow(J,[])
图像I显示如下:
图像J显示如下:
G)索引图像的显示
loadclown%装载一幅图像
imwrite(X,map,'clown.bmp');%保存为bmp文件
imshow(X)
imshow(X,map)
H)RGB图像的显示
I=imread('flowers.tif');
imshow(I)
图像I显示如下:
RGB=imread('ngc6543a.jpg');
figure,imshow(RGB)
图像RGB显示如下:
imshow(I(:
:
3))%显示第3个颜色分量
图像I的第3个分量显示如下:
I)多帧图像的显示
mri=uint8(zeros(128,128,1,27));%27帧文件mri.tif初始化
forframe=1:
27
[mri(:
:
:
frame),map]=imread('mri.tif',frame);%读入每一帧
end
imshow(mri(:
:
:
3),map);%显示第3帧
figure,imshow(mri(:
:
:
6),map);%显示第6帧
figure,imshow(mri(:
:
:
10),map);%显示第10帧
figure,imshow(mri(:
:
:
20),map);%显示第20帧
J)显示多幅图像
[X1,map1]=imread('forest.tif');
[X2,map2]=imread('trees.tif');
subplot(1,2,1),imshow(X1,map1);
subplot(1,2,2),imshow(X2,map2)
subplot(1,2,1),subimage(X1,map1)
subplot(1,2,2),subimage(X2,map2)
三、思考题
1.简述MatLab软件的特点。
1)可扩展性:
Matlab最重要的特点是易于扩展,它允许用户自行建立指定功能的M文件。
对于一个从事特定领域的工程师来说,不仅可利用Matlab所提供的函数及基本工具箱函数,还可方便地构造出专用的函数,从而大大扩展了其应用范围。
2)高效性:
Matlab语句功能十分强大,一条语句可完成十分复杂的任务。
它大大加快了工程技术人员从事软件开发的效率。
据MathWorks公司声称,Matlab软件中所包含的Matlab源代码相当于70万行C代码。
3)易学易用性:
Matlab不需要用户有高深的数学知识和程序设计能力,不需要用户深刻了解算法及编程技巧。
2.MatLab软件可以支持哪些图像文件格式?
GIF、BMP、TIFF、PCX、JPG、PSD。
3.如何显示多帧图像的所有帧?
如何根据多帧图像创建电影片段?
imshow(X(:
:
:
3),map)的形式显示所有帧,montage在矩形框中同时显示多幅图像。
immovie创建多帧索引图的电影动画。
4.图像显示时,若不带参数’notruesize’,显示效果如何?
显示时按图片实际大小显示图片,窗口会自动调节大小去适应图片尺寸。
5.如何显示RGB图像的某一个颜色分量?
imshow(X(;,;,i),map)的形式显示某一个颜色分量。
实验二图像运算
一、实验目的
1.熟悉图像点运算和代数运算的实现方法
2.了解图像几何运算的简单应用
3.了解图像的邻域操作
二、实验内容
1.图像点运算
读入图像‘rice.png’,通过图像点运算改变对比度。
rice=imread('rice.png');
subplot(131),imshow(rice)
I=double(rice);%转换为双精度类型
J=I*0.43+60;
rice2=uint8(J);%转换为uint8
subplot(132),imshow(rice2)
J=I*1.5-60;
rice3=uint8(J);%转换为uint8
subplot(133),imshow(rice3)
图像显示如下:
2.图像的代数运算
A)图像加法运算
I=imread('rice.png');
imshow(I)
图像I显示如下:
J=imread('cameraman.tif');
figure,imshow(J);
图像J显示如下:
K=imadd(I,J);
figure,imshow(K)
图像相加的结果显示如下:
K2=imadd(I,J,'uint16');
figure,imshow(K2,[])
RGB=imread('flowers.tif');
RGB2=imadd(RGB,50);
imshow(RGB)
figure,imshow(RGB2)
图像RGB和RGB2显示如下:
RGB3=imadd(RGB,100);
figure,imshow(RGB3)
图像RGB3显示如下:
B)图像减法运算
I=imread('rice.png');
imshow(I)
background=imopen(I,strel('disk',15));%估计背景图像
figure,imshow(background);
I2=imsubtract(I,background);%从原始图像中减去背景图像
figure,imshow(I2)
原始图像如下:
背景图像如下:
相减的图像如下:
C)图像乘除法运算
I=imread('moon.tif');
J=immultiply(I,1.2);
K=immultiply(I,0.5);
imshow(I)
figure,imshow(J)
figure,imshow(K)
原始图像如下:
乘1.2后的图像如下:
乘0.5后的图像如下: