实验二、图像几何变换班级:学号:姓名:实验时间:实验学时:2学时一、实验目的1、结合实例学习如何在视频显示程序中增加图像处理算法;2、理解和掌握图像的平移、垂直镜像变换、水平镜像变换、缩放和旋转的原理和应用。二、实验原理1、初始坐标为(x,y)的点经过平移(0x,0y),坐标变为('x,'y),两点之间的关系为:00''yyyxxx,以矩阵形式表示为:1100y10011''00yxxyx2、图像的镜像变换是以图象垂直中轴线或水平中轴线交换图像的变换,分为垂直镜像变换和水平镜像变换,两者的矩阵形式分别为:11000100011''yxyx110001-00011''yxyx3、图像缩小和放大变换矩阵相同:110000001''yxyxSSyx当1,1yxSS时,图像缩小;1,1yxSS时,图像放大。4、图像旋转定义为以图像中某一点为原点以逆时针或顺时针方向旋转一定角度。其变换矩阵为:11000cossin0sincos1''yxyx该变换矩阵是绕坐标轴原点进行的,如果是绕一个指定点(ba,)旋转,则现要将坐标系平移到该点,进行旋转,然后再平移回到新的坐标原点。三、实验步骤1、启动MATLAB程序,对图像文件分别进行生成、失真和校正;(参考教材115页,例5.8,例5.9)。观察处理结果。2、记录和整理实验报告四、实验仪器1、计算机;2、MATLAB程序;f=checkerboard(24);figure(1);imshow(f);s=0.7;theta=pi/6;T=[s*cos(theta)s*sin(theta)0-s*sin(theta)s*cos(theta)0001];tform=maketform('affine',T);g1=imtransform(f,tform,'nearest');figure(2);imshow(g1);g2=imtransform(f,tform);figure(3);imshow(g2);g3=imtransform(f,tform,'Fillvalue',0.5);figure(4);imshow(g3);f=checkerboard(24);figure(1);imshow(f);figure(2);imshow(g1);cpselect(f,g1);base_point=[68.9471.5679;126.4734.306;183.8768.667;150.93126.39;115.03184.09;58.244152.74;1.4543116.4;34.6258.699;92.77392.319];input_point=[1.23661;96.8531;192.051;191.196.289;192.05192.05;97.237191.1;1.4741192.05;1.474196.763;96.28996.289];tform=cp2tform(input_points,base_points,'projective');gp=imtransform(g1,tform,'XData',[1192],'YData',[1192]);figure(3);imshow(gp);3、记录用的笔、纸。五、实验报告内容1、叙述实验过程;2、提交实验的原始图像和结果图像。六、思考题1、改变水平和垂直的偏移量,观察显示?2、改变缩放比例,看看效果如何?3、改变旋转角度,显示效果会怎么样?