实验三 图像几何变换处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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('剪切后的图像');