实验三 图像几何变换处理

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

实验三图像几何变换处理

****************共3小题****************

20124178 付蕊

一、实验目的及要求

1.了解图像的几何空间变换和图像插值的基本方法;

2.对图像进行相应的几何变换操作。

二、实验设备与软件

1.PC计算机

2.MATLAB软件/语言包括图像处理工具箱(Image Processing Toolbox) 3.实验所需要的图片

三.实验内容

1.图像缩放

>> I=imread('pout.tif');

>> figure,imshow(I);

>> m=[0.5,0,0;0,0.5,0;0,0,1];

>> J=maketform('affine',m);

>> K=imtransform(I,J);

>> figure,imshow(K);

2.图像旋转

>> I=imread('pout.tif');

>> m=[cos(pi/4),sin(pi/4),0;-sin(pi/4),cos(pi/4),0;0,0,1]; >> J=maketform('affine',m);

>> figure,imshow(I);

>> K=imtransform(I,J);

>> figure,imshow(K);

3.图像剪切

①水平剪切

>> I=imread('pout.tif'); >> m=[1,0,0;0.5,1,0;0,0,1]; >> J=maketform('affine',m); >> K=imtransform(I,J);

>> figure,imshow(I);

>> figure,imshow(K);

②垂直剪切

>> I=imread('pout.tif');

>> m=[1,0.5,0;0.5,1,0;0,0,1]; >> J=maketform('affine',m); >> K=imtransform(I,J);

>> figure,imshow(I);

>> figure,imshow(K);

③水平镜像

>> I=imread('pout.tif'); >> m=[-1,0,0;0,1,0;1,0,1]; >> J=maketform('affine',m); >> K=imtransform(I,J);

>> figure,imshow(I);

>> figure,imshow(K);

④垂直镜像

>> I=imread('pout.tif'); >> m=[1,0,0;0,-1,0;0,1,1]; >> J=maketform('affine',m); >> K=imtransform(I,J);

>> figure,imshow(I);

>> figure,imshow(K);

四、参考程序代码

%图像缩放

Im=imread('pepperssm1.png');

Im1=imresize(Im,2,'nearest');%第二个参数小于1为缩小Im2=imresize(Im,2,'bilinear');

Im3=imresize(Im,2,'bicubic');

figure(1);

imshow(Im);

title('原图像');

figure(2);

imshow(Im1);

title('最近邻插值法');

figure(3);

imshow(Im2);

title('双线性插值法');

figure(4);

imshow(Im3);

title('双立方插值法');

Im4=imresize(Im,[200 200]);%用最近邻插值把图像变成200*200的大小

figure(5);

imshow(Im4);

title('200*200');

%%%%图像旋转

Im=imread('cameraman.tif');

Im1=imrotate(Im,30,'bilinear');%用双线性法逆时针旋转图像30度

Im2=imrotate(Im,30,'bilinear','crop');%不改变原图大小,超出画布的部分被剪切掉

subplot(1,3,1);

imshow(Im);

title('原图像');

subplot(1,3,2);

imshow(Im1);

title('改变原图大小的旋转');

subplot(1,3,3);

imshow(Im2);

title('不改变原图大小的旋转');

figure(2);

for i=1:20

Im3=imrotate(Im,15*i,'crop');

imshow(Im3);

end

%图像剪切

Im=imread('cameraman.tif');

Im1=imcrop(Im);%按指定参数剪切图像

subplot(1,2,1);

imshow(Im);

title('原图像'); subplot(1,2,2); imshow(Im1);

title('剪切后的图像');

相关文档
最新文档