当前位置:首页 > (2016版)图像处理实验2郭振军
实验二、图像几何变换
一、实验目的
1结合实例学习如何在视频显示程序中增加图像处理算法;
2理解和掌握图像的平移、垂直镜像变换、水平镜像变换、缩放和旋转的原理和应用;
二、实验原理
1 初始坐标为(x, y)的点经过平移(x0,y0),坐标变为(x',y'),两点之间的关系为:??x'?x?x0,以矩阵形式表示为:
?y'?y?y0?x'??1 0 x0 ??x???y? ?y'???0 1 y0???????1??1???????1??0 0 2 图像的镜像变换是以图象垂直中轴线或水平中轴线交换图像的变换,分为垂直镜像变
换和水平镜像变换,两者的矩阵形式分别为:
?x'???1 0 0 ??x??y'???0 ??y?
1 0???????0 1??1???????0 ?1? 0 ? ?x??x'??1 0?y'???0 -? ?y?
1 0 ???????? 1 1??1???????0 0?3 图像缩小和放大变换矩阵相同:
?x'??Sx 0 0 ??x??y'???0 S 0??y?
y??????????1??1???0 0 ??1? 当Sx?1, Sy?1时,图像缩小;Sx?1, Sy?1时,图像放大。
4 图像旋转定义为以图像中某一点为原点以逆时针或顺时针方向旋转一定角度。其变换
矩阵为:
sin? 0??x??x'??cos? ?y'????sin? cos? 0??y? ??????? 0 1??1????0 ???1??该变换矩阵是绕坐标轴原点进行的,如果是绕一个指定点(a,b)旋转,则现要将坐标系平移到该点,进行旋转,然后再平移回到新的坐标原点。
三、实验步骤
1 启动MATLAB程序,对图像文件分别进行生成、失真和校正;(参考教材100页,例5.8,例5.9)
2 记录和整理实验报告
四、实验仪器
1计算机;
2 MATLAB程序; 3记录用的笔、纸。
五、实验报告内容
生成图像
f=imread('110.jpg'); f2=rgb2gray(f);
g = imrotate(f2, -30); imshow(g);
f=imread('guo2.jpg'); f2=rgb2gray(f);
figure(1);imshow(f2); g=imread('c:\\guo2.jpg'); figure(2);imshow(g);
base_points =[103.2500 73.7500;
87.7500 93.7500; 71.2500 74.7500; 85.7500 167.2500; 86.7500 137.2500; 142.2500 53.2500; 110.7500 98.2500; 64.7500 98.7500];
input_points = [222.7500 146.7500; 198.7500 155.7500; 194.2500 131.2500; 159.7500 219.2500; 175.7500 193.2500; 266.2500 149.2500; 217.2500 170.7500; 175.7500 149.7500];
tform=cp2tform(input_points,base_points,'projective'); gp=imtransform(g,tform,'XData',[1 256],'YData',[1 256]); figure(3);imshow(gp); 原始图像
几何失真图像
复原图像
六、思考题
1.改变水平和垂直的偏移量,观察显示? 2.改变缩放比例,看看效果如何?
3. 改变旋转角度,显示效果会怎么样?
共分享92篇相关文档