图像几何变换程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
*******************
实践教学
*******************
兰州理工大学
计算机与通信学院
2012年秋季学期
图像处理综合训练
题目:图像几何变换程序设计
专业班级:
姓名:
学号:
指导教师:
成绩:
目录
摘要 0
一、前言 (1)
二、算法分析与描述 (2)
2.1图象平移 (2)
2.2图象比例变换 (2)
2.3图象水平、垂直翻转 (3)
2.4图象旋转 (3)
三、详细设计过程 (5)
3.1算法分析 (5)
3.2设计内容 (6)
3.3流程图 (6)
四、调试过程中出现的问题及相应解决办法 (8)
五、程序运行截图及其说明 (9)
六、简单操作手册 (12)
设计总结 (16)
参考资料 (17)
致谢 (18)
附录 (19)
摘要
图形图像处理主要是通过计算机对图像进行处理,从而达到预期的那种效果的技术。因为处理离不开计算机,所以又称计算机图像处理。
图像几何变换是计算机图像处理中很重要的一部分,主要包括图像的水平、垂直翻转,图像旋转变换,图像比例变换。
在图像处理中,可以通过MATLAB来实现图像的几何变换,此软件的语法结构简单,并且具有极强的数值计算、图形文字处理、数据分析、图形绘制及图像处理等功能。
关键字:图像的几何变换;MATLAB;图像的旋转;垂直、水平翻转;比例变换
一、前言
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是一种既可交互使用又能解释执行的计算机编程语言。所谓交互使用,是指用户输入一条语句后立即就能得到该语句的计算结果,而无需像C语言那样首先编写源程序,然后对之进行编译,连接,才能最终形成可执行文件。MATLAB语言可以用直观的数学表达式来描述问题,从而避开繁琐的底层编程,因此可大大提高工作效率。
图像用数字任意描述像素点、强度和颜色。描述信息文件存储量较大,所描述对象在缩放过程中会损失细节或产生锯齿。在显示方面它是将对象以一定的分辨率分辨以后将每个点的色彩信息以数字化方式呈现,可直接快速在屏幕上显示。分辨率和灰度是影响显示的主要参数。图像适用于表现含有大量细节(如明暗变化、场景复杂、轮廓色彩丰富)的对象,如:照片、绘图等,通过图像软件可进行复杂图像的处理以得到更清晰的图像或产生特殊效果。
图像几何变换主要是指数字图像的几何变换(或称为空间变换),即图像中点与点之间的空间映射关系。是通过数学建模实现对数字图象进行几何变换的处理。可以让我们从不同角度去观察或欣赏图片,增加对个方位图像的理解。
二、算法分析与描述
2.1图象平移
图像平移是将一幅图像中所有的点都按照指定的平移量在水平、垂直方向移动,平移后的图像与原图像相同。平移后的图像上的每一点都可以在原图像中找到
利用齐次坐标,变换前后图像上的点P0(x0, y0)和P(x, y)之间的关系可以用如下的矩阵变换表示为:
2.2图象比例变换
图象比例变换是指图象缩小。图象缩小是通过减少像素个数来实现的,根据所期望缩小的尺寸数据,从原图象中选择合适的像素点,使图象缩小之后可以尽量保持原有图像的概貌特征不丢失。
以图象缩小为例设原图像大小为M*N,缩小为k1M*k2N,(k1<1,k2<1)。
算法步骤如下:
(1)设原图为F(i,j),i=1,2,…,M;j=1,2,…,N.压缩后图像是G(x,y), x=1,2,…,k1M, y=1,2,…,k2N.其中,c1=1/k1 c2=1/k2 为采样间隔
(2)G(x,y)=F(c1*x,c2*y)
2.3图象水平、垂直翻转
图像的水平翻转操作是以原图像的垂直中轴线为中心,将图像分为左右两部分对称变换;图像的垂直镜像操作是以原图的水平中轴线为中心,将图像分为上限两部分对称变换。翻转后的高和宽都不变。
设图像高度为Height ,宽度为Width ,原图中的(0x ,0y )经过水平翻转
后坐标将变为(Width-0x ,0y )即
101
0Width-x x y y =⎧⎨=⎩ 同样,(0x ,0y )经过垂直翻转后坐标将变成为(0x ,Width-0y ),即
101
0Height-x x y y =⎧⎨=⎩ 2.4图象旋转
图像的旋转是指以图像中的某一点为原点以逆时针或顺时针方向旋转一定的角度。通常是围绕图像的起始点以逆时针旋转。这样,就可以利用解析几何的方法来实现图像的旋转。 (
x ,y )
直角坐标系中的图像旋转)
图像旋转计算公式如下:
1010
Width-x x y y =⎧⎨=⎩ 其中,(,)i j 是原图像(,)f i j 中的像素的坐标;''(,)i j 是对应像素点(,)i j 经过旋转变换后图像''(,)G i j 的像素的像素点坐标。
图像旋转以后会出现空穴的现象,可以用插值法来解决。所谓插值法就是在判断为空穴的位置上填充一个估计的值。因为估计值的选择不同,得到的方法的复杂度和效果也不同,在这里用的是均值插值法。
均值插值法是将空穴像素周围像素的均值作为填充值填在该空穴点中,如:
图图
131112232122333132 0 0 0 0 G 0 0 0f f f f f f f f f ⎡⎤⎢⎥
⎢⎥=⎢⎥⎢⎥⎣⎦
其空穴像素点为(2,3)的周围(上、下、左、右)的像素值为13221223,,,f f f f ,则
该点的像素值2313221223()/4g f f f f =+++,即13111223232122333132 0 0 0 G 0 0 0f f f g f f f f f f ⎡⎤⎢⎥
⎢⎥=⎢⎥⎢⎥⎣⎦
。