图像旋转

关键词: 图像

图像旋转(精选六篇)

图像旋转 篇1

近几十年来, 随着相关学科的发展, 以及各领域对图像处理要求的提高, 数字图像处理技术得到了更加深入、广泛和迅速的发展。图像旋转是一种常用的数字图像处理技术, 目前已广泛地应用于军事、航空、生物医学等方面。由于在图像旋转变换的过程中要用到浮点运算, 原始图像为整数的像素坐标 (x, y) , 变换为目标图像的位置坐标并非整数, 反之亦然。因此, 图像的旋转变换包括坐标的几何运算和对运算结果的插值处理两个方面, 并且根据选择插值方法的不同, 得到的旋转效果也不同。

1 图像旋转的几何原理

旋转有一个绕着什么转的问题, 通常的做法是以图像的中心为圆心旋转。在图1所0示的坐标系A中, 以图像的中心为原点O, 向右为x轴正方向, 向下为y轴正方向, 点 (x0, y0) 顺时针旋转a角后坐标变换为 (x1, y1) 。设r为点 (x0, y0) 到原点 (0, 0) 的距离, 在旋转过程中, r保持不变, B为r与x轴之间的角度, 则有:

旋转α角度后:

x1=r*cos (β) ;yl=r*sin (β)

旋转前:

以矩阵的形式表示为:

公式 (1) 的逆变换为:

例如, 图2中OBABC绕OA顺时针旋转度后, 图像变为OA1B1C1, 可以看出, 旋转后的图像变大了。若保持原图像大小, 可以把转出的部分裁剪掉。

如果以图像的左上角点为原点, 向右为x轴正方向, 向下为y轴正方向, 记为坐标系B。设图像的宽为w, 高为h, 两种坐标系间的转换关系如图2所示。则有:

以矩阵的形式表示为:

公式 (3) 的逆变换为:

于是, 坐标系B中图像的旋转变换可分为3步: (1) 应用公式 (3) , 将坐标系B变成坐标系A; (2) 应用公式 (2) , 在坐标系A中将该点顺时针旋转角; (3) 应用公式 (4) , 将坐标系A变回坐标系B。这样, 我们就得到了变换矩阵, 是上面3个矩阵的级联。

其中, w1, h1表示原图的宽和高, w2, h2表示新图的宽和高。公式 (5) 的逆变换为:

这样, 对于新图中的每一点 (x1, y1) , 可以根据公式 (6) 求出对应原图中的 (x0, y0) , 得到它的灰度, 如果超出原图范围, 则填成白色。

要注意的是, 原始图像的像素坐标为整数, 由于有浮点运算, 变换后的目标图像的坐标位置可能不是整数。所以, 图像的旋转处理, 除了要进行几何运算, 还需要对目标图像的坐标位置进行插值处理。

2 常用的插值方法

常用的插值方法有3种:最近邻法、双线性插值法和双三插值法。

2.1 最近邻法

最近邻法是一种简单的插值方法, 它是通过计算于点 (x0, y0) 邻近的4个点, 将与点 (x0, y0) 最近的整数坐标点的像素值取为 (x0, y0) 点的像素值。

2.2 双线性插值法

对于一个目的像素, 通过反向变换得到浮点坐标 (x+u, y+v) , 其中x、y均为非负整数, u、v为[0, 1) 区间的浮点数, 则这个像素的值可由源图中坐标为 (x, y) 、 (x+1, y) 、 (x, y+1) 、 (x+1, y+1) 4个点所对应的像素的值确定, 即:f (x+u, y+v) = (1-u) (1-v) *f (x, y) + (1-u) v*f (x, y+1) +u (1-v) *f (x+1, y) +uv*f (x+1, y+1) 。其中, f (x, y) 代表源图像 (x, y) 处的像素值, 以此类推。

这就是双线性插值法, 它考虑到了点 (x, y) 的4个直接邻点对它的影响, 因此一般可以得到令人满意的插值效果。

2.3 双三插值法

双线性插值法考虑到浮点坐标 (x+u, y+v) 的4个直接邻点对它的影响, 而双三插值法则考虑到该点周围16个邻点对它的影响。目标坐标的像素值可由如下的公式得到:f (x+u, y+v) =ABC。

其中:

插值函数S (x) =sin (πx) /πx可以采用以下多项式近似。

2.4 三种插值方法分别逆时针旋转6度处理后的效果图

由以上几幅图可以看到, 用最近邻法得到的图像质量最差, 其图像上面呈现出明显的锯齿状纹理, 特别在像素差别比较大的地方明显, 用双三次插值法得到的图像纹理最清晰, 质量最好, 双线性插值法得到的图像的质量介于两者之间。

2.5 三种插值方法的比较

3 结束语

本文详细论述了数字图像旋转的几何原理, 以及常用的3种插值方法在数字图像旋转中应用, 介绍了3种插值方法的特点。这3种插值方法不仅适用于图像旋转处理, 也适用于其它的数字图像处理技术。深刻理解图像处理的理论依据, 掌握不同的插值方法, 对于我们编写算法程序有很大的帮助。

摘要:随着数字图像技术的发展, 数字图像处理广泛应用于几乎所有与图像处理有关的领域。图像的几何变换是数字图像处理中一个基本的、非常重要的变换, 而旋转变换是几何变换中最复杂的变换。分析了图像旋转的几何原理, 并对图像旋转中用到的插值处理方法, 即:最近邻法、双线性插值法和双三线性插值法, 进行了比较和分析, 在此基础上对其应用进行了阐述。

关键词:图像旋转,最近邻,双线性,双三线性

参考文献

[1]尤玉虎, 周孝宽.数字图像最佳插值算法研究[J].中国空间科学技术, 2005 (3) .

[2]杨淑莹.VC++图像处理程序设计[M].北京:清华大学出版社, 2005.

[3]龚声蓉, 刘纯平, 王强.数字图像处理与分析[M].北京:清华大学出版社, 2006.

[4]陈天华.数字图像处理[M].北京:清华大学出版社, 2007.

[5]夏德深, 傅德胜.计算机图像处理及应用[M].南京:东南大学出版社, 2004.

[6]姚敏.数字图像处理[M].北京:机械工业出版社, 2006.

[7]郎锐.数字图像处理学Visual C++实现[M].北京:希望电子出版社, 2003.

[8][美]KENNETH R.CASTLEMAN.数字图像处理[M].朱志刚, 译.北京:电子工业出版社, 2002.

图像的翻转和旋转教学反思 篇2

本节课的主要内容是画图程序里的图像的“翻转/旋转”功能,针对的对象是小学四年级学生。在课程要求中,对于实际操作能力要求很高。因此在授课过程中,更加注重学生操作能力的培养。

在上这节课之前学生要对画图程序里的画图程序里的“选定”“任意选取范围”工具和复制、粘贴、移动、缩小、放大等功能需非常的熟练,这节课的新内容要用到这些功能,半个学期的学习已经使学生能够熟练运用。

第一:导入部分,我利用了生活中常见的物品图形启发学生什么是对称物体,让学生初步了解对称,同时通过对比让学生知道对称的特点,导入新课,激发学生浓厚的学习兴趣。用“对称王国”的故事吸引学生注意,通过让学生观察美的图片,感受对称美,同时巩固学生关于对称的概念,为学习新知做好铺垫。教材从具体到抽象,从感性到理性,从实践到理论,再用实践检验理论,层次分明,循序渐进的指导学生初步认识自然界和日常生活中具有轴对称性质的事物,使学生进一步认识所学的平面图形的本质特征。

第二:在新授第一个知识点的过程中,我首先引导学生明白在画图程序中,画对称图形时,简单的“复制”、“粘贴”并不能完成绘图。接着给学生操作演示画蝴蝶,完成“图像”―“翻转/旋转”―“水平翻转”。接着再提出第二个问题:如何完成飞机的绘画,提示学生在图像下拉菜单中“水平翻转”的下面一项是“垂直翻转”,由学生自己思考,加深了同学们对于这步操作过程的印象。真正发挥同学学习的能动作用,教师只是学习活动的组织者。在教师演示之后,留几分钟时间给学生练习,演示与练习相结合,利于学生掌握学生内容、提高学习效果。考虑到学生学习能力的.参差不齐,有的学生会用较短的时间完成任务,鼓励这些学生给这些图形加上美丽的颜色或线条,大胆的发挥,提高学生的创造能力。学生的创新是本节课的亮点,他们可以无拘无束的绘画,画出自己的心中所想,梦中所见。

第三:在讲授第二个知识点“旋转”时,考虑到四年级的学生空间思维能力还有待提高,我先演示旋转能够得到什么图形,旋转三个角度与原来的图形放在一起会得到什么图形,接着启发学生的发散思维和创新能力,告诉学生只要设计的好基本上所有的图形都可以旋转,得到奇妙的图案,这个时候学生一定跃跃欲试,在创新的过程中掌握“旋转”功能。

第四:在学生练习的过程中随时展示学生优秀作品,这样既能鼓励学生,也可以激发其本人与其他学生的发散思维,进行良性竞争。

第五:总结时,我用课件展示了“水平翻转”、“垂直翻转”、“旋转”等功能的其他用法,令学生加深印象,创造生活中之不可能,鼓励学生大胆创新,敢于想象。

基于FPGA的数字图像旋转的实现 篇3

关键字:数字图像旋转;CORDIC算法;FPGA

中图分类号:TP39文献标识码:A文章编号:1007-9599 (2010) 09-0000-01

FPGA-based Realization of Digital Image Rotation

Su ZhaozhongZhang Yide

(School of Optoelectronic Information, University of Electronic Science and Technology of China,Chengdu610054,China)

Abstract:Digital image rotation software solutions exist slow,poor real-time inadequate,proposes a number of FPGA processing platform for the image rotation program.

Keywords:Digital image rotation;CORDIC algorithm;FPGA

一、CORDIC算法原理

本文所设计的数字图像旋转系统,必然要涉及到图像像素点的坐标的旋转,在坐标旋转的实现,以CORDIC算法的实现最为关键。CORDIC(CoordiantedRotationDigitalComputer)算法即坐标旋转计算。

对于一个P点坐标 经过逆时针旋转 角成为Q点坐标为 ,如图1所示:

从图1可以看出,P点经过旋转后得到Q点,那么有:(1)

假定将 分解为一组固定角度 的线性组合,即: ,其中 (2)

代表每次基本角度的方向,可得递推公式, (3)

经 次旋转后的第 次旋转前的角度: (4)

令 为要求的转角 与 之差, (5)则有 (6)

由上式(3)可得: (7)

若取 则(8)

(9)称为CORDIC算法的基本旋转公式。可以看出CORDIC算法实际上只是由一系列简单的移位和加法操作组成。原矢量P的坐标 经过n次基本旋转,得到 ,原矢量精确旋转 角度后,新矢量为 ,则有 (10)

上式中 (11)

对于 ,这是一个收敛的函数,经过计算 ,由此可见基本旋转对矢量改变了矢量的模长,矢量还需要进行模长的校正,才能保持原矢量模值不变。由于CORDIC计算时的角度覆盖范围为 ≤ ≤ ,所以为使CORDIC算法适应与全平面的旋转问题,需要在进行计算之前对其做预处理,以使得CORDIC算法能完成对平面矢量进行 旋转运算。

二、坐标旋转电路设计

实现基于CORDIC算法的坐标旋转电路的设计,有两种电路结构可以实现,一种是循环结构,此结构所使用的资源较少,但是有较高的时钟延时,每完成一次坐标的转化就需要n个时钟的延时。另外一种是高速的流水线结构,流水线结构占用的资源較多,但每一时钟就能完成一个坐标的变换。CORDIC迭代算法的流水线实现方法。

三、系统总体结构设计

图3为系统总体结构框图,包括以下几部分,对于图像的接收,采用乒乓操作的方式,开辟两块RAM存储区域,用于读写图像暂存。在总体控制模块的控制下,第一帧图像暂存在RAM_A中,第二帧图像暂存在RAM_B中,在存储第二帧图像的同时,把第一帧图像读出,读出后第一帧,RAM_A就可以接收第三帧图像,依次接收,每帧图像都不会丢失。每次从RAM中读取的数据,都是先经过坐标旋转计算模块运算后得到新坐标,然后送给读地址产生器模块,生成新的坐标,送至RAM地址端口,得到对应的像素点,每个新坐标对应的像素点所组成的新图像就是所要得到的初步旋转后的图像。然后再通过双线性插值模块,得到最佳效果的旋转图像。

参考文献:

[1]刘怡,黄自力,王经纬.FPGA双线性插值图像变换系统的设计与实现[J].中国测试技术,2008,5,3

图像旋转 篇4

Delphi是Windows平台下著名的快速应用程序开发工具, 它具有简单、高效、功能强大的特点。目前, Delphi已经成为众多软件开发者常用的开发工具。但是, 如何在Delphi环境下实现任意角度、任意次数的旋转显示, 并保持图像的自我恢复功能, 这是一件十分困难的事情, Delphi没有提供现成的命令、函数或控件开发工具。

对于一些小的图像, 可以将图像保存到内存中, 每次旋转时从内存中读入像素, 实现相应的操作。但图像像素过大, 不可能在内存全部保存。笔者在进行钻井录井曲线图像转换操作的过程中, 就遇到了这样的问题, 而且每旋转一次就会不可逆转地丢失掉部分图像信息。

笔者针对这一问题进行了大量的测试, 最终设计了一种行之有效的、在Delphi环境下实现图像旋转操作的方法, 现介绍如下:

2 实现图像旋转的方法与途径

在一个Scroll Box控件内放置两个Image图像, 分别将Name属性设置为Image Right、Image Left, 并使两个Image控件在Scroll Box控件内完全重叠, 将Image Right的Transparent属性置为False, 而将Image Left的Transparent属性置为True。程序运行时, 在Image Right上加载原图像, Image Left上显示原图或旋转后的图像。图像调入后, 分别在Image Right、Image Left上同时保存, 并在Image Left上显示。一旦要旋转图像, 就从Image Left中获取图像像素, 并按给定的角度旋转后, 在Image Right上显示。采用这样的方式, 每次的旋转操作都是调用原图像素来完成的, 既方便快捷, 又能够避免丢失图像信息。

为了实现图像快速、精确的旋转, 采用一个滚动条Scroll Bar1和单行编辑器Edit Rotary A控件组合进行图像的旋转调整控制。可以根据原图像的偏斜情况估计一个角度进行粗略的旋转操作, 而后根据效果再用滚动条实现图像旋转的精细控制。在Scroll Bar1的On Change事件上编制如下脚本, 实现Scroll Bar1与Edit Rotary A之间的数值同步:

同时, 在Edit Rotary A控件的On Change事件中, 编制如下脚本来改变Scroll Bar1滚动条的位置:

为了实现精细的旋转控制, 将Scroll Bar1控件的Max和Min属性分别设置为7200和0, 即旋转分辨力为0.5°

假定旋转前后图像的坐标分别为 (x1、y1) 和 (x2、y2) ;需要旋转的角度为Angle。则旋转过程通过以下的Xuan Zhuan Point () 过程实现:

其中, xx、yy分别为原图像的像素中心点位置。

在以上过程中, 由于以图像的中心点为基准点, 即图像中心位置没有变, 因此旋转后的后的坐标值 (x2、y2) 可能会出现不合理的负值。为了避免这样的结果, 应首先获取旋转后图形的范围, 然后将超出图像之外的部分进行适当平移。为此, 编制如下的Get Xuan Zhuang Image XY () 过程来确定图像 (xmin, ymin) - (xmax, ymax) 的矩形区域:

在已知图像旋转后的矩形区域后, 如果 (xmin, ymin) 坐标在有效区域之外, 就再对图像进行相应的平移处理。

通过这样的设计, 最终获得的图像旋转操作脚本具体如下:

3 应用实例

以油田录井曲线扫描图的旋转处理为例, 进行图像旋转的详细介绍。由于以前的录井资料是以图像方式保存的, 为了快速地获取图像中的数据, 需要通过计算机编程, 用计算机进行自动读图处理。但这些图像进行扫描时, 往往存在角度的偏差, 导致获得的图像如图1 (a) 所示。由于扫描图像角度的偏差是随机的, 因此需要将图像做适当的旋转, 将图像恢复到标准位置, 以便让计算机进行自动读图操作。

图1 (b) 就是采用上述方法进行图像旋转操作后得到的效果。使用表明, 通过这样的旋转处理后, 就可以编制读图程序, 方便地将图1 (b) 中的录井曲线数据一一读取下来, 以供后续的科学研究使用。

4 结语

Delphi是一个被广泛使用的应用软件开发工具, 但Delphi本身没有用于任意角度图像旋转的控件和工具, 本文介绍了一种可以实现图像任意旋转的Delphi语言编程方法。该方法不仅可以实现任意角度图像的旋转显示, 而且能够保证每次旋转后图像的质量, 使用十分方便。

摘要:详细介绍了一种在Delphi环境下, 利用Image、ScrollBar、Edit控件和数字图像处理算法, 实现图像任意角度旋转显示的编程技巧, 并给出了相关的程序源码。

关键词:图像旋转,数字图像处理,Delphi语言,录井曲线,图形读取

参考文献

基于FPGA的二维码图像旋转系统 篇5

关键词:图像旋转,FPGA,二维码,CORDIC

近年来,物联网技术高速发展,已成为各国的发展战略,受到高度重视。在物联网的应用和实现过程中,条码技术(可分为一维条码和二维条码)是信息识别领域最为重要和关键的技术之一。如今二维条码技术已经在物流、通信和工业领域中得到了广泛应用[1]。

因图像采集环境复杂多变,采集到的二维码必须进行图像处理才能达到理想的识别率。二维码图像预处理包括灰度化、滤波去噪、二值化、图像旋转和图像去光照等步骤。由于通过摄像头采集到的图像或多或少都会有一定的歪斜,所以将图像旋转端正对二维码图像识别来说是必不可少的[2,3]。

本文基于CORDIC算法,设计了一种高速流水线的图像旋转算法。算法只包含加法和移位操作,在FPGA上的验证结果表明,本设计的电路精度高,速度快,可以适用于实时二维码图像识别。

1 二维码图像采集和显示

在本系统中,图像采集采用OV7620摄像头。OV7620是一种CMOS图像传感器,具有软件可编程性,可以通过SCCB总线协议进行其工作模式的配置,被广泛应用在网络摄像头、摄像手机等产品中。首先基于SCCB协议的寄存器配置电路对OV7620进行初始化,然后设计了摄像头图像采集程序,通过SRAM控制器将采集到的图像存入SRAM中,并在LCD上实时显示出来。摄像头采集与显示框图如图1所示。

2 图像旋转角度的获取

由于受采集环境、摄像头和图像采集者等多种因素的影响,采集到的二维码图像一般都会有一定的歪斜。要将二维码图像旋转端正,首先需要知道二维码图像歪斜的角度。QR码图像在左上角、左下角和右上角各有一个位置探测图形,每个位置探测图形可以看作是由3个重叠且同心的正方形组成,它们分别为7×7个深色模块、5×5个浅色模块和3×3个深色模块。如图2所示,位置探测图形的模块宽度比为1:1:3:1:1。符号中其他地方遇到类似图形的可能性极小,因此可以通过扫描整个二维码图像找出3个位置探测图形,根据3个位置探测图形的相对位置判断出图像的歪斜角度。

3 图像旋转算法分析和实现

设(x,y)为将原图像旋转角度θ后的新坐标,(x′,y′)为原图像中的对应坐标,则(x,y)与(x′,y′)的对应关系为:

令θ=arctan2-i(i为整数),则tanθ=2-i,cosθ=1/姨1+2-2i。令k=cosθ,则式(1)可变为:

由式(2)只能计算出特定角度(arctan2-i)的旋转坐标。CORDIC算法的原理是任何角度都可以通过n个arctan2-i形式的微小角度相加来无限接近。可引入变量z表示每次旋转的方向,z的初始值为图像需要旋转的角度,则式(2)可以变为:

式(3)为CORDIC算法的基本旋转公式。可以看出,CORDIC算法是由一系列简单的移位和加法操作组成的。它实际上是一种逐次逼近的坐标旋转方法,每次旋转都使累加的旋转角度之和与目标旋转角更接近。迭代次数n越大,旋转的角度就与真实的角度越接近。在实际应用中,受硬件资源限制,不可能迭代很多次。实际上,对于n次迭代,CORDIC算法的旋转精度为arctan2-(n-1)。当n=8时,旋转精度可达0.447 6°,满足实际应用的需要[4]。

在式(3)中,每次迭代运算后都需要与ki进行一次乘法,n次迭代运算就需要进行n次乘法,这将十分消耗硬件资源。在实际操作中,一般都是在n次迭代过后再乘上,这是一个收敛函数,由此可见基本的旋转改变了矢量的模长,需要用k(n)进行校正。当n趋于无穷大时,k(n)趋近于一个固定值0.607 25。这种直接在流水线结构之后附加乘法器的实现方法使原本由移位器和加法器组成的整体结构变得不规则,同时乘法器占用很大资源且会降低整个流水线的吞吐率。因此,提出一种CORDIC模校正方法来避免在硬件中引入乘法器。

通过数学变换有:。故用4次由加法和移位组成的迭代以及1次右移操作即可实现模校正。与乘法操作相比,加减法付出的代价很小,进一步降低了硬件复杂度,使整体结构规则统一,有利于硬件实现。求取旋转角度后,可通过双线性插值算法实现图像的重现。

4 系统架构

整个系统包括求取角度单元、地址产生单元、数据准备单元、时钟分频单元、CORDIC单元、双线性插值单元和存储单元,系统框图如图3所示。求取角度单元对存储在RAM中的图像像素值进行扫描,通过设计的状态机求得图像歪斜的角度;地址产生单元将原图像中的地址依次传给CORDIC单元;CORDIC单元接收地址以及歪斜角度,通过13级流水线(8级CORDIC变换流水线和5级模校正流水线)求得旋转过后的新坐标的整数部分和小数部分;数据准备单元根据CORDIC单元求出的新坐标的整数部分计算出其最邻近的4个像素点的像素值,并将这些像素值与新坐标的小数部分一起传给双线性插值单元,计算出新坐标的像素值。

由于计算过程中包含小数,所以在硬件结构中将原始数据左移8位进行扩张,在CORDIC单元最后将计算得到的数据的低8位提取出来作为小数部分即可。

5 实验结果分析

本实验中设计了摄像头采集程序以及液晶驱动程序。可以通过摄像头实时采集图像;将采集到的图像通过灰度化、中值滤波和二值化处理后,存入SRAM中;随后电路开始读取SRAM中的图像并求出歪斜角度,通过图像旋转电路将图像旋转端正。整个设计全部采用Verilog HDL语言编写。采用Synplify Pro、Quartus II 9.1和Modelsim 6.5SE仿真和实现了整个设计,并在DE2开发板上对本设计进行了验证。

通过实验结果可知,电路最大工作频率可以达到90.9 MHz;整个系统消耗了1 289个组合逻辑单元和483个寄存器单元;求得一个旋转过后的像素值需要6个时钟周期,因此本二维码图像旋转系统处理640×480像素的图像的帧率为49 f/s,该速度完全可以满足实际要求。上述验证结果表明,本设计的二维码图像旋转系统具有速度快、复杂度低的特点。

参考文献

[1]GHOSH I,MAJUMDAR B.Design of an application specific VLSI chip for image rotation[C].Calcutta:Proceedings of the Seventh International Conference on VLSI Design,1994:275-278.

[2]SUCHITRA S,LAM S K,SRIKANTHAN T.Novel schemes for high-throughput image rotation[C].Singapore:Conference Record of the Thirty-Eighth Asilomar Conference on Signals,Systems and Computers,2004,2:1884-1888.

[3]Jiang Xiaogang,Zhou Jianyang,Shi Jianghong,et al.FPGA implementation of image rotation using modified compensated CORDIC[C].6th International Conference on ASIC,2005:752-756.

图像旋转 篇6

关键词:人脸检测,旋转积分图像,算法改进,Harr型特征

0引言

在Crow提出summed-area tables算法[1]后,Viola将其用于人脸图像分析,引入积分图像的概念作为图像的一种中间表示,并在Adaboost和Cascade算法实现的实时人脸检测系统中用它来计算图像的Harr型特征[2]。后来,Rainer Lienhart在Viola的基础上又提出了一些新的旋转Harr型特征及其积分图像算法,使boosting算法学习得到的系统能够用于旋转人脸的快速检测,但Rainer Lienhart用来计算旋转Harr型特征的积分图像需要对原图像遍历两次才可得到[3]。

在人脸检测中,基于boosting的统计学习算法训练时需要大量的样本,如文献[4]共使用了人脸样本44000个,而每一个样本的Harr型特征的计算都需先计算样本的积分图像。另外,对测试集进行测试时也同样需要先计算积分图像。本文通过改进旋转45°矩形窗口的积分图像算法,实现了遍历原图像一次即可同时获得图像直立矩形窗口和旋转45°矩形窗口的积分图像,并减少了计算量。为描述方便,下文中均设原始图像宽度为W,高度为H,x为图像水平方向坐标,向右为正方向,y为图像垂直方向坐标,向下为正方向,即0≤xW-1,0≤yH-1。

1Harr型特征及积分图像

1.1Harr型特征介绍

Harr型特征是Viola等人提出的用于人脸图像分析的一种简单矩形特征,因类似于Harr小波而得名。如图1(a)~(d)所示,Harr型特征的定义是黑色矩形和白色矩形各自在图像子窗口中对应区域的灰度值总和之差。它反映了图像局部的灰度变化。为检测旋转人脸,Rainer Lienhart在Viola的基础上提出了一些新的旋转Harr型特征[3],图1(e)~(h)为其中的一部分。所有这些Harr型特征的计算都是通过积分图像实现的。因Harr型特征中的矩形有直立矩形和旋转45°的矩形两种,因此积分图像也有相应的两种。

1.2计算Harr型特征的积分图像

1.2.1 直立矩形窗口的积分图像(以下简称积分图像)

积分图像中任意一点(x,y)表示在原始图像中如图2(a)所示的斜线区域像素灰度值之和,即:

ii(x,y)=xx,yyi(x,y) (1)

式(1)中,ii(x,y)表示积分图像(Integral Image),i(x′,y′)表示原图像。ii(x,y)可用式(2)、式(3)迭代进行计算[2]:

s(x,y)=s(x,y-1)+i(x,y) (2)

ii(x,y)=ii(x-1,y)+s(x,y) (3)

其中s(x,y)表示一列的积分,且s(x,-1)=0,ii(-1,y)=0。求一幅积分图像,只需遍历一次原图像。图2(b)所示图像矩形窗口D的像素灰度值之和可以用积分图像中相应的四个点(x1,y1),(x2,y2),(x3,y3),(x4,y4)计算出来,即窗口D的像素灰度值之和为:ii(x4,y4)+ii(x1,y1)-(ii(x2,y2)+ii(x3,y3))。

1.2.2 旋转45°矩形窗口的积分图像(以下简称旋转积分图像)

旋转积分图像中任意一点(x,y)表示原始图像中图3(a)所示的斜线区域像素灰度值之和,即:

rii(x,y)=xx,xx-|y-y|i(x,y) (4)

式(4)中,rii(x,y)表示旋转积分图像(Rotated Integral Image),i(x′,y′)表示原图像。求旋转积分图像rii(x,y),文献[3]需遍历原图像两次才能完成,每次迭代需要5次加法和两次减法。图3(b)所示图像旋转45°的矩形窗口D的像素灰度值之和可以用旋转积分图像中相应的四个点(x1,y1),(x2,y2),(x3,y3),(x4,y4)计算出来,即窗口D的像素灰度值之和为:rii(x4,y4)+rii(x1,y1)-(rii(x2,y2)+rii(x3,y3))。

2旋转45°矩形窗口的积分图像算法改进

根据上述Rainer Lienhart的算法,为使旋转积分图像在遍历原图像一次即能完成,并减少其计算复杂度,进行了一些改进。改进的旋转积分图像中任意一点(x,y)表示原始图像中图4(a)所示的斜线区域像素灰度值之和,即:

irii(x,y)=yy,yy-|x-x|i(x,y) (5)

式(5)中,irii(x,y)表示改进后的旋转积分图像(Improved Rotated Integral Image),i(x′,y′)表示原图像。irii(x,y)算法如下:

y=0时 irii(x,y)=i(x,y) (6)

y>0时,irii(x,y)可用式(7)迭代进行计算:

irii(x,y)=irii(x-1,y-1)+irii(x+1,y-1)-irii(x,y-2)+i(x,y)+i(x,y-1) (7)

irii(-1,-1)=0 irii(x,-1)=0 irii(-1,y)=0

irii(W,-1)=0 irii(W,y)=0 irii(x,-2)=0

改进的算法仅需从上到下遍历原图像各行一次即可获得旋转积分图像,与文献[3]相比,不需对原图像遍历二次,且运算量由原来每次迭代需要5次加法和2次减法,降低为每次迭代只需3次加法和1次减法。另外,改进后的算法,可使积分图像和旋转积分图像在对原图像的同一次遍历过程中获得,因为这两种积分图像均是以从左到右、从上到下的方式扫描原图像得到的。图4(b)所示图像旋转45°的矩形窗口D像素灰度值之和可以用改进的旋转积分图像中相应的四个点(x1,y1),(x2,y2),(x3,y3),(x4,y4)计算出来,即窗口D的像素灰度值之和为:irii(x4,y4)+irii(x1,y1)-(irii(x2,y2)+irii(x3,y3))。

3旋转积分图像的应用拓展

旋转积分图像不仅能用于计算旋转Harr型特征,还能应用于其它需要计算图像任意窗口灰度均值或需要统计二值边缘图像中任意窗口边缘点数的场合。以下仍以人脸检测为例来说明。

在基于知识规则的人脸检测中,一般将原灰度图像中各可能的人脸窗口按人脸模式划分成几个区域,并统计各区域的灰度均值、方差,若统计结果符合相应知识规则,则该窗口作为候选人脸,进入下一步验证环节;或通过原灰度图像和某一边缘检测算法获取二值边缘图像,然后在二值边缘图像中按人脸模式的分区统计待测窗口的各区域边缘点数,如果各区域内的边缘点数均符合其相应的阈值范围,则该窗口作为候选人脸,进入下一步验证环节。

由于一幅图像中不同位置及不同大小的可能人脸窗口数量十分巨大,因此进行灰度均值、方差,以及边缘点数统计的运算量十分巨大。利用积分图像可以大大减少这些统计过程的运算量,文献[5]对此进行了较为详细的论述和实验,但至今在基于知识规则的人脸检测中,还没有应用旋转积分图像直接检测平面内旋转人脸的报道。为此,本文结合旋转积分图像和积分图像,设计了一组能对平面内较大旋转角度的人脸进行粗检的双眼检测模型,如图5中的黑色矩形框所示(背景是作参考的平均脸图像)。

图5(a)是受文献[6]双眼检测模型的分区策略启发设计的,但略有不同(文献[6]中各矩形区域大小相同),在此基础上,设计了图5(b)~(d)中所示的双眼检测模型。检测反方向旋转的人脸时还需另外的3个双眼检测模型,可以按图5(b)~(d)的模型类推,此处不再赘述。在黑色矩形框所示的双眼检测模型中,图5(a)~(b)的各区域为直立矩形,可用积分图像来快速统计,图5(c)~(d)的各区域为旋转45°的矩形,可用旋转积分图像来快速统计。

检测时,先提取二值边缘图像[6],再分别计算原灰度图像及二值边缘图像的积分图像和旋转积分图像,然后同时在原灰度图像及二值边缘图像中进行搜索,按每个模型所划分的6个矩形区域,应用积分图像和旋转积分图像分别快速统计灰度均值、方差,边缘点数。根据各区域预先确定的知识规则判定是否为候选人脸窗口,及为何种旋转姿势的候选人脸窗口。图5(a)的双眼检测模型适合平面内旋转范围在0°±10°的人脸检测(以顺时针方向旋转为正,以下同)。类似地,图5(b)的双眼检测模型适合平面内旋转范围在15°±10°的人脸检测;图5(c)的双眼检测模型适合平面内旋转范围在30°±10°的人脸检测;图5(d)的双眼检测模型适合平面内旋转范围在45°±10°的人脸检测。有关知识规则的建立可以参考文献[5,6]进行设计,并通过实验确定模型中各区域的适当阈值范围。详细检测算法限于篇幅,将另撰文阐述。

4实验结果

表1为本文的算法和Rainer Lienhart的算法计算速度对比,实验在CPU为PⅢ667、内存256M的PC机上,操作系统为Windows XP,应用delphi7.0编程实现。实验表明,用本文的算法计算旋转积分图像要快得多,这是因为一方面Rainer Lienhart的算法要对原图像扫描两次,而本文算法只需对原图像扫描一次,另一方面本文算法的算术运算量要小些。

5结论

本文提出了旋转45°矩形窗口的积分图像算法的改进措施。改进后的算法不但算术运算量比原来减少了,而且获得图像直立矩形窗口和旋转45°矩形窗口的积分图像由原来需要遍历原图像两次变为只需遍历一次。实验证明,在boosting统计学习算法中,大量样本及测试集的积分图像计算时间大大缩短。本文还阐述了利用这种计算旋转Harr型特征的积分图像检测平面内旋转人脸的另一种方案,这表明旋转积分图像不仅能用于计算旋转Harr型特征,还能应用于其它需要计算图像任意窗口灰度均值或需要统计二值边缘图像中任意窗口边缘点数的场合。

参考文献

[1]Crow F.Summed-area tables for texture mapping.In Proceedings ofSIGGRAPH,1984,18(3):207-212.

[2]Viola P,Jones M.Rapid object detection using a boosted cascade ofsimple features.In Proc.of the IEEE Computer Vision and PatternRecognition,Cambridge,Britain,2001:511-518.

[3]Lienhart R,Maydt J.An Extended Set of Haar-like Features for RapidObject Detection.In Proc.of the IEEE Conf.on Image Processing,NewYork,USA,2002:55-162.

[4]武勃,黄畅,艾海舟.基于连续Adaboost算法的多视角人脸检测.计算机研究与发展,2005,42(9):1612-1621.

[5]张敏贵.基于小波和支持向量机的人脸识别方法研究[D].西安:西北工业大学,2003.

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:66553826@qq.com

上一篇:化学图像 下一篇:图像参数