学号 专业 姓名
实验日期 教师签字 成绩
实 验 报 告
【实验名称】 实验七 图像的几何变换
【实验目的】
理解和掌握图像的剪切、垂直镜像变换、水平镜像变换、缩放和旋转的原
理和应用。
【实验内容】
【实验步骤】
1.对原图使用最近邻插值法进行放大2倍。
2.对原图使用双线性插值法进行旋转。
3.对原图同时进行垂直镜像变换和水平镜像变换。
4. 对原图进行剪切,剪切的区域的位置和范围自己设定。
选做:可自行选取多种方法完成以上操作。并进行比较和讨论。
附: 图像的镜像变换是以图像垂直中轴线或水平中轴线交换图像的变换,分为垂直镜像变换和水平镜像变换。
【程序清单】
图像放大缩小
>> I=imread('D:\Fig_lenna_RGB.tif');
>> figure,imshow(I)
>> D=imresize(I,0.2,'nearest');
>> figure,imshow(D)
>> E=imresize(D,4,'nearest');
>> figure,imshow(E)
【实验截图】
512*512*3 uint8
102*102*3 uint8 408*408*3 uint8512
图像旋转
>> I=imread('D:\Fig_lenna_RGB.tif');
>> J=imrotate(I,40,'bilinear');
>> figure,imshow(I)
>> figure,imshow(J)
【实验截图】
图像水平镜像变换和垂直镜像变换
>> I=imread('D:\Fig_lenna_RGB.tif');
>> subplot(2,2,1),imshow(uint8(I))
>> title('(a)原始图像');
>> subplot(2,2,2),imshow(uint8(I))
>> title('(b)原始图像');
>> 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(2,2,3),imshow(I1)
>> title('(c)水平镜像变换');
>> 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(2,2,4),imshow(I2) >> title('(d)垂直镜像变换');
【实验截图】
对原图剪切
>> I=imread('D:\Fig_lenna_RGB.tif'); >> RGB2=imcrop(I,[200 100 100 200]); >> figure,imshow(I)
>> imshow(RGB2)
【实验截图】
学号 专业 姓名
实验日期 教师签字 成绩
实 验 报 告
【实验名称】 实验七 图像的几何变换
【实验目的】
理解和掌握图像的剪切、垂直镜像变换、水平镜像变换、缩放和旋转的原
理和应用。
【实验内容】
【实验步骤】
1.对原图使用最近邻插值法进行放大2倍。
2.对原图使用双线性插值法进行旋转。
3.对原图同时进行垂直镜像变换和水平镜像变换。
4. 对原图进行剪切,剪切的区域的位置和范围自己设定。
选做:可自行选取多种方法完成以上操作。并进行比较和讨论。
附: 图像的镜像变换是以图像垂直中轴线或水平中轴线交换图像的变换,分为垂直镜像变换和水平镜像变换。
【程序清单】
图像放大缩小
>> I=imread('D:\Fig_lenna_RGB.tif');
>> figure,imshow(I)
>> D=imresize(I,0.2,'nearest');
>> figure,imshow(D)
>> E=imresize(D,4,'nearest');
>> figure,imshow(E)
【实验截图】
512*512*3 uint8
102*102*3 uint8 408*408*3 uint8512
图像旋转
>> I=imread('D:\Fig_lenna_RGB.tif');
>> J=imrotate(I,40,'bilinear');
>> figure,imshow(I)
>> figure,imshow(J)
【实验截图】
图像水平镜像变换和垂直镜像变换
>> I=imread('D:\Fig_lenna_RGB.tif');
>> subplot(2,2,1),imshow(uint8(I))
>> title('(a)原始图像');
>> subplot(2,2,2),imshow(uint8(I))
>> title('(b)原始图像');
>> 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(2,2,3),imshow(I1)
>> title('(c)水平镜像变换');
>> 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(2,2,4),imshow(I2) >> title('(d)垂直镜像变换');
【实验截图】
对原图剪切
>> I=imread('D:\Fig_lenna_RGB.tif'); >> RGB2=imcrop(I,[200 100 100 200]); >> figure,imshow(I)
>> imshow(RGB2)
【实验截图】