多媒体图像处理第1次实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 Matlab图像处理基础
一、实验目的
1.了解Matlab的基本功能及操作方法
2.练习图像读写和显示函数的使用方法
3.掌握Matlab支持的五类图像的显示方法(灰度、索引、黑白、彩色等)
4.熟悉常用的图像文件格式与格式转换;
二、实验内容
1. 图像的读写
A)图像读
RGB = imread('ngc6543a.jpg');
imshow(RGB);
B)图像写
先从一个.mat 文件中载入一幅图像,然后利用图像写函数imwrite,创建一个.bmp文件,并将图像存入其中。
load clown;
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,[1 0 0;0 0 1]); BW图像以特定颜色显示如下:
F)灰度图像的显示
I=imread('testpat1.tif');
J=filter2([1 2;-1 -2],I);
imshow(I)
figure,imshow(J,[])
图像I显示如下:
图像J显示如下:
G)索引图像的显示
load clown %装载一幅图像
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初始化for frame=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不需要用户有高深的数学知识和程序设计能力,不需要用户深刻
了解算法及编程技巧。