实验一 :熟悉MATLAB的图象处理工具箱

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一:熟悉MATLAB的图象处理工具箱

一、实验课题: 熟悉MATLAB的图象处理工具箱

二、实验内容: 熟悉Matlab编程,通过调用imread命令读取数字图像,然后进行基本数字图像处理。

三、实验目标:

1.掌握Matlab图像处理基本函数;

2.掌握Matlab图像几何变换。

四、实验准备:

1.了解Matlab帮助信息中数字图像处理的基本函数;

2.通过查阅资料,搞清楚基本函数实现功能。

五、实验重点: 掌握Matlab图像处理基本函数

六、实验难点: 运用Matlab图像处理基本函数编程

七、实验步骤:

1.启动Matlab,输入help命令,查找帮助信息中有关图像处理的基本函数。

2.输入Demo命令,观察Demo程序所进行图像处理的效果,并学会分析Demo

程序。

3.进行几何变换的几种处理变换.

4.采用imread命令,读入一张图片,分析图像读入,并在工作空间分析图

像数据。

八、实验程序:

垂直镜像

tic;

x=handles.imdata;

[M,N]=size(x);

for i=1:M

for j=1:N

y(i,j)=x(M-i+1,j);

end

end

Time=toc;

set(handles.edit1,'string',Time);

if (M<=256)&(N<=256)

W=256;

else

W=max(M,N);

end

extendx=double(zeros([W,W]));

for m=1:W

for n=1:W

if (m<=M)&(n<=N)

extendx(m,n)=y(m,n);

else

extendx(m,n)=realmax;

end

end

end

axes(handles.axes2);

imshow(extendx,[min(min(y)),max(max(y))]); handles.imdata=y;

guidata(hObject, handles);

水平镜像

tic;

x=handles.imdata;

[row,col]=size(x);

for i=1:row

for j=1:col

y(i,j)=x(i,col-j+1);

end

end

Time=toc;

图像转置

tic;

x=handles.imdata;

[row,col]=size(x);

for i=1:col

for j=1:row

y(i,j)=x(j,i);

end

end

Time=toc;

图像平移

tic;

x=handles.imdata;

[row,col]=size(x);

prompt={'pixels of horizontal displacement:' 'pixels of vertical displacement:'}; name='Input for Geometric Transformation';

numlines=1;

defaultanswer={'50' '50'};

anss=inputdlg(prompt,name,numlines,defaultanswer);

x0=str2num(anss{1});

y0=str2num(anss{2});

T=[1 0 0;0 1 0;x0 y0 1];

tform=maketform('affine',T);

g=imtransform(x,tform,'XData',[1 col],'YData',[1 row],'FillValue',0.5);

Time=toc;

图像缩放

tic;

x=handles.imdata;

[row,col]=size(x);

prompt={'zoom proportion for horizon(positive fraction or integer):' 'zoom proportion for vertical(positive fraction or integer):'};

name='Input for Geometric Transformation';

numlines=1;

defaultanswer={'0.5' '0.5'};

anss=inputdlg(prompt,name,numlines,defaultanswer);

Xratio=str2num(anss{1});

Yratio=str2num(anss{2});

T=[Xratio 0 0;0 Yratio 0;0 0 1];

tform=maketform('affine',T);

g=imtransform(x,tform);

Time=toc;

图像旋转

tic;

x=handles.imdata;

prompt={'Angle(-360~360):'};

name='Input for Geometric Transformation';

numlines=1;

defaultanswer={'45'};

anss=inputdlg(prompt,name,numlines,defaultanswer);

theta=str2num(anss{1});

T=[cos(theta) sin(theta) 0;-sin(theta) cos(theta) 0;0 0 1];

tform=maketform('affine',T);

g=imtransform(x,tform);

Time=toc;

相关文档
最新文档