实 验 报 告 课程名称 数字图像处理 实验名称 图像的几何变换 姓 名 __ 冯倩 学 号 ____201007120207_ 专业班级_ 数媒1002 实验日期__2012_ 年 _10 _月 _18 日 成绩_____ __ 指导教师___李湘娟_ 一、 实验目的 掌握图像平移、缩放、旋转与镜像变换; 二、 实验原理 图像平移,自写平移函数 immove.m function outImage=immove(inImage,Tx,Ty) [m, n] = size(inImage);%计算图象大小 outImage = uint8(zeros(m+abs(Ty), n+abs(Tx))); if(Tx>0&&Ty>0) %往右下角平移的情况 outImage(1+Ty:m+Ty,1+Tx:n+Tx) = inImage; else if(Tx<0&&Ty<0) %往左上角平移的情况 outImage(1:m,1:n) = inImage; else if (Tx<0&&Ty>0) %往左下角平移的情况 outImage(1+Ty:m+Ty,1:n) = inImage; else % 往右上角平移的情况 outImage(1:m,1+Tx:n+Tx) = inImage; end end end 主函数 I=imread('C:\Documents and Settings\K46\桌面\1.jpg'); J=rgb2gray(I); imshow(J);title('原图像'); H=immove(J,100,-100); figure;imshow(H);title('平移后图像'); B=immove(J,80,-50); figure;imshow(B);title('平移后图像'); G=imresize(J,0.5); figure;imshow(G);title('缩放后图像'); C=imresize(J,2); figure;imshow(C);title('缩放后图像'); D=imrotate(J,30); figure;imshow(D);title('旋转后图像'); E=imrotate(J,54); figure;imshow(E);title('旋转后图像'); F = flipdim(J,1); figure;imshow(F);title('垂直镜像图像'); G = flipdim(J,2); figure;imshow(G);title('水平镜像图像'); 三、 实验环境 Window 2000 Matlab 7.0.1 四、 实验内容与步骤 读取并显示一幅灰度图像; 对原图像进行平移操作,调整平移参数,记录不同结果; 对原图像进行缩放操作,调整缩放参数,将图像缩放至不同大小; 对原图像进行旋转操作,调整角度参数,记录不同结果; 对原图像进行水平镜像和垂直镜像操作。 五、 实验结果与分析(可提供屏幕抓图) 原图象 ??? 平移图象 B=immove(J,100,-100); 平移后图像 B=immove(J,80,-50); 平移后图像 图像缩放 B=imresize(I,0.5); 缩 放 后 图像 B=imresize(I,2); 缩 放 后 图像 图像旋转 B=imrotate(A,30); 旋 转 后 图像 B=imrotate(A,54); 旋 转 后 图像 图像镜像 垂直镜像图像 B = flipdim(A,1); 垂 直 镜 像 图像 水平镜像图像 B = flipdim(A,2); 水 平 镜 像 图像