数字图像处理图像翻转,平移,缩放由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“图像平移旋转缩放”。
学号:Xb09680112
班级:09通信工程(1)
姓名:项德亮
实验一
图像几何变换
一. 实验目的1.熟悉MATLAB中的图像处理工具箱。2.熟悉MATLAB中常用的图像处理函数。
3.掌握图像平移、图像旋转和图像缩放的基本原理与实现方法。二.实验设备 微机 三.预习要求
1.认真复习课件里的内容,并熟悉教材中第2章的内容。2.了解imread()、imshow()、imhist()等函数的使用方法。四.实验内容及步骤 实验内容:
1.熟悉MATLAB图像处理工具箱的功能及常用的图像处理函数。
2.打开“Image Proceing”工具箱里的Demos,查看“Spatial Transformation”中的第一个例子“Creating a Gallery of Transformed Images”,把所有源代码拷到一个m文件里运行,查看运行结果,给源代码添加注释。然后再改变变换矩阵T里面的参数,再查看运行结果。把改变参数后(每位同学可以任意改变)的m文件保存为SpatialTransformation.m。
3.编程实现图像的平移,平移量应该可调(即用一个向量或两个标量保存平移量),并显示对图像“view”的处理结果。%平移 clear;%读入图像
imori=imread('view.bmp','bmp');imres=imori;[m,n]=size(imori);tx=60;ty=-40;%平移 for i=1:m
for j=1:n
if tx
imres(i,j)=imori(i,j);
else
imres(i,j)=255;
end end end imshow(imres)%显示结果%显示结果
4.编程实现图像的缩放,缩放系数可调,分别用两个变量或一个向量保存水平和垂直方向的缩放系数,并显示对图像“view”的处理结果。clc;sx=1.5;sy=2.0;%读入原始图像
imageOri=imread('view.bmp','bmp');[m,n]=size(imageOri);%求变化矩阵 s=[sx,0,0;0,sy,0;0,0,1];sinv=inv(s);%求变换后的图像大小 m1=m*sx;
n1=n*sy;m2=floor(m1);
n2=floor(n1);imageres=255*ones(m2,n2);%灰度差值 for i=1:m2
for j=1:n2
a=sinv*[i,j,1]';
x=a(1);y=a(2);
g(i,j)=ImageBiInterpolate(y,x,imageOri);
end end
imshow(uint8(g))%输出结果图像
5.编程实现图像绕图像原点的旋转,并显示对图像“couple”的处理结果。有兴趣的同学可以实现绕任意点的旋转。clc;clear;theta=30;%读入原始图像
ImageOri=imread('view.bmp','bmp');[m,n]=size(ImageOri);%求变化矩阵
r=[cos(theta),sin(theta),0;-sin(theta),cos(theta),0;0,0,1];rinv=inv(r);%求变换后的图像大小 m1=m;
n1=n;m2=floor(m1);
n2=floor(n1);imageres=255*ones(m2,n2);%灰度差值 for i=1:m2
for j=1:n2
a=rinv*[i,j,1]';
x=a(1);y=a(2);
g(i,j)=ImageBiInterpolate(x,y,ImageOri);
end end
imshow(uint8(g))
%输出结果图像
五.实验的心得体会
通过这次实验,我发现matlab软件的功能很强大,既能编写程序,完成波形的设计,还可以处理图像的位置,改变图像的大小,旋转图像的角度,学会使用imread()读取图像,imshow()展示图像,使用for语句,完成图像的反复操作,直到得到我们要的图像。