数字图像处理——实验二 图像的几何变换

  • 格式:docx
  • 大小:446.72 KB
  • 文档页数:4

数字图像处理实验二

实验二 图像的几何变换

一.实验目的及要求

掌握图像几何变换的基本原理,熟练掌握数字图像的缩放、旋转、平移、镜像和转置的基本原理及其MATLAB编程实现方法。

二、实验设备

1.计算机;

2.MATLAB6.5;

三、实验内容及结果

(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。

1. 图像缩放

分析:imresize 函数功能:用于对图像做缩放处理

J1 = imresize(I, Scale, 'nearest') 即将图像I,采用最近邻插值算法,放大(缩小)Scale倍。

J2 = imresize(I, Scale, 'bilinear') 即将图像I,采用双线性插值算法,放大(缩小)Scale倍。

通过改变Scale的大小,可以观察到生成的图像大小随之改变,且放大倍数越大,图像变得越模糊。

在放大相同倍数的情况下,可以观察到采用双线性插值算法的图像更为清晰。

2. 图像旋转 Original Imagee-- using the nearest neighbormage-- using the bilinear inter 数字图像处理实验二

分析:imrotate 函数功能:用于对图像做旋转处理

J1 = imrotate(I, Theta, 'nearest') 即将图像I,采用最近邻插值算法,绕图像的中心点旋转Theta度, 正数表示逆时针旋转, 负数表示顺时针旋转,旋转后的图像超出的部分填充0(黑色)。

J2 = imrotate(I, Theta, 'bilinear', 'crop') 功能同上,不同的是采用了双线性插值算法,'crop'表示通过对旋转后的图像进行裁剪,保持旋转后输出图像的尺寸和输入图像的尺寸一样。

通过改变Theta的大小,可以观察到生成的图像旋转角度随之改变,同时,采用双线性插值算法的图像更为清晰。

3.图像水平镜象

分析:flipdim(X,dim),其中X表示一个矩阵,dim指定翻转方式,dim为1,表示按Original Image Rotated Image-- using the bilinear interpolation Rotated Image-- using the nearest neighbor interpolation 数字图像处理实验二

行翻转,2表示按列翻转。

I1 = flipdim(I,2) 即得到图像I的水平镜像

I2 = flipdim(I,1) 即得到图像I的垂直镜像

(二)用MATLAB编程实现以下图像几何变换

1.图像平移

原理:图像平移即将一幅图像上所有的点都按照给定的偏移量在水平方向沿x轴,在垂直方向沿y轴移动。

设点𝐴0(𝑥0,𝑦0)进行平移后到A(x,y),其中x方向的平移量为∆x,y方向的平移量为∆y,那么A(x,y)的坐标为:

yyyxxx00 即11001001100yxyxyx

对应的逆变换为:11001001100yxyxyx即yyyxxx00

clear all, close all

I = imread('cameraman.tif');

L1=50;

L2=50;

H=size(I);

a=1:H(1)-L1;

b=1:H(2)-L2;

a1=L1+1:H(1);

b1=L2+1:H(2);

I1(a1,b1)=I(a,b);

figure(1),imshow(I),title('Original Image');

figure(2),imshow(I1),title('New Image');

Original ImageNew Image 数字图像处理实验二

2.图像转置

原理:图像的转置是将给定图像像素的x坐标和y坐标互换的几何变换,设点P0(x0,

y0) 转置后的对应点为P(x, y),转置变换可表述为:

00xyyx 或

1100001010100yxyx,对应的逆变换为:1100001010100yxyx 或

xyyx00

转置后图像的宽、高发生改变,即输出图像的高度为原始图像的宽度,输出图像的宽度为原始图像的高度。

clear all, close all

I = imread('moon.tif');

I1=I';

subplot(3,4,[1 5 9]),imshow(I),title('Original Image');

subplot(3,4,[6 7 8]),imshow(I1),title('New Image');

四.实验总结

本次实验主要对图像的几何变换知识通过matlab进行练习,加深了理解。图像的几何变换包括图像的缩放,旋转,平移,镜像以及剪切等运算,通过几何变换,图像的像素值会发生变化。在做实验之前,一定要先复习一下相关知识,这样做起来效率更高,也更有益于复习巩固。