图形图像处理实验报告八

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

图形图像处理实验报告

实验八:几何变换(第五章)指导教师:张宝雷

姓名:刘爽专业:09信本二班学号:09040342021

一、图像的平移变换

MATLAB代码:

clear all;

A=imread('iep.jpg');

figure;

subplot(121);imshow(A);

A=double(A);

A_move=zeros(size(A));

H=size(A);

A_x=50;

A_y=50;

I_movesult(A_x+1:H(1),A_y+1:H(2),1:H(3))=I(1:H(1)-A_x,1:H(2)-A_y,1:H(3));

subplot(122);imshow(uint8(A_move));

二、图像的裁剪

1、用imcrop函数对图像进行裁剪

MATLAB代码:

I=imread('iep.jpg');

I1=imcrop(I,[80 60 50 50]);

figure;

subplot(121);imshow(I);

subplot(122);imshow(I1);

2、使用剪切图像函数制作动画MATLAB代码:

I=imread('iep.jpg')

n=50;

m=50;

figure;imshow(I);

for i=1:50

n=n-1;

m=m+1;

I1=imcrop(I,[n,n,m,m]);

figure;imshow(I1);

end

三、图像的比例缩放变换

1、用最近邻域法进行图像放大4倍和缩小1/2倍的操作。

MATLAB代码:

I=imread('fish.jpg'); %I为原始图像

figure;

subplot(131);imshow(I); %显示原始图像

I=double(I);

I_en=imresize(I,4,'nearest'); %最近邻法标志函数nearest扩大4倍

subplot(132);imshow(uint8(I_en)); %显示扩大4倍后的图像

I_re=imresize(I,0.5,'nearest'); %缩小两倍

subplot(133);imshow(uint8(I_re));%显示缩小2倍后的图像

2、图像旋转

MATLAB代码:

clear all;

I=imread('mei.jpg'); %本书用的图片都在当前目录下,故不用写路径figure;

subplot(121);imshow(I);

I1=imrotate(I,30,'crop');

subplot(122);imshow(I1);

3、使用imrotate函数旋转图像,制作动画效果

MATLAB代码:

I=imread('mei.jpg');

for i=1:25

I1=imrotate(I,15*i,'crop');

imshow(I1);

end

三、图像错切变换

1、图像错切示例

MATLAB代码:

I=imread('mao.jpg');

figure;

subplot(121);imshow(I);

I=double(I);

h=size(I);

I1=zeros(h(1)+round(h(2)*tan(pi/6)),h(2),h(3));

for m=1:h(1)

for n=1:h(2)

I1(m+round(n*tan(pi/6)),n,1:h(3))=I(m,n,1:h(3));

end

end

I2=uint8(I1);

subplot(122);imshow(I2);

2、图像镜面变换示例

MATLAB代码:

I=imread('ta.jpg');

figure;

subplot(221);imshow(I);

I=double(I);

h=size(I);

I_fliplr(1:h(1),1:h(2),1:h(3))=I(1:h(1),h(2):-1:1,1:h(3)); %水平镜像变换

I1=uint8(I_fliplr);

subplot(222);imshow(I1);

I_flipud(1:h(1),1:h(2),1:h(3))=I(h(1):-1:1,1:h(2),1:h(3)); %垂直镜像变换

I2=uint8(I_flipud);

subplot(223);imshow(I2);

I_fliplr_flipud(1:h(1),1:h(2),1:h(3))=I(h(1):-1:1,h(2):-1:1,1:h(3)); %对角镜像变换

I3=uint8(I_fliplr_flipud);

subplot(224);imshow(I3);

四、图像复合变换

1、将图像向下、向右平移,并用白色填充空白部分,再对其作垂直镜像,然后旋转45度,再扩大3倍。

MATLAB代码:

I=imread('ben.jpg'); %读取原始图像

figure;

subplot(121);imshow(I);

I=double(I);

I1=zeros(size(I))+255;

h=size(I1);

相关文档
最新文档