灰度投影算法范文
灰度投影算法范文(精选7篇)
灰度投影算法 第1篇
影响视频观看最主要的一个方面就是画面的抖动性。视频画面的抖动不仅影响观看者对图像信息的把握同时使观察者产生视觉上的疲劳。当摄像机置于运动物体上或手持摄像机运动时,由于载体的运动导致摄像机的不正常晃动,往往这种不正常的晃动是很难被避免的,所以视频稳像的应用正是针对这种问题所提出的研究。
视频稳像过程大致的流程为:源图像预处理运动估计运动决定运动补偿稳定图像。其中最关键的步骤在于运动估计和运动补偿,两者相比之下,运动估计为整个步骤的灵魂。所以,近些年来,许多学者针对运动估计提出了许多算法,其中包括块匹配算法,特征值算法,灰度投影算法,位平面算法等。[1]
2 视频稳像
2.1 基本原理
视频稳像的基本原理就是根据运动估计的偏移量,在运动补偿中进行逆向移动,补偿由于抖动产生的位移偏移。如图1所示,设椭圆型为目标物体,在没有物体的局部运动及视频抖动的情况下,物体应一直处于A 的位置,但由于视频抖动的存在,使物体在某帧中偏移到了B的位置或C的位置。连续不断的位置偏移便产生了视频抖动的情况,视频稳像的目的就是消除这种不经意中产生的物体偏移。也就是使B,C位置处的物体回到A的位置上来。运动估计算法就是求出A位置与B,C位置之间的运动偏移值。运动补偿就是根据得出的运动偏移值将在B,C位置的物体反方向移动到A位置上,使物体仍然在A处从而呈现出稳定的图像。
2.2 关于运动模型的选择
视频图像中由于抖动所产生的变化主要分为平移和旋转。故常选用affine变换模型,如公式(1)所示。本文算法中不考虑物体沿Z轴方向的旋转和缩放,故将affine变换模型简化为二参数的仿射运动模型,如公式(2)所示:[2]
undefined
其中X,Y和X′,Y′分别为两帧图像的坐标,a,b,c,d为图像的旋转缩放参数,e ,f为图像的平移参数。
2.3 块匹配算法[3]
在运动估计算法中,块匹配算法应用较为广泛。其基本的思想是:将当前帧的图像划分为数个mn大小的块,对于相应的块A在选定的参考帧中取一个(m+△m,n+△n)的范围,在该范围的所有候选块中,按照某种匹配准则,找出与当前块最相似的块,即为匹配块B。块A与块B之间的相对位移即为当前块的运动矢量。
在块匹配算法中,又分两大方面:匹配准则和搜索策略。其中,匹配准则主要有SAD(SAE)绝对误差和;SSD(SSE)差值的平方和;MAD(MAE)平均绝对差值;MSD(MSE)平均平方误差。相应的计算公式如下:
常用的搜索策略包括全局搜索运动估计,两步搜索运动估计,三步运动估计,Diamond运动估计等。[4]其中,全局搜索运动估计精度最高,但同时时间复杂度也最高,其他搜索策略时间复杂度有所降低的同时精度也有所下降。
2.4 灰度投影算法[5]
投影法是根据图像在坐标轴上总的灰度变化来确定图像运动的矢量的一种方法,利用图像的灰度投影曲线做一次相关的运算,这种算法的特点是运算量小,运算速度快。灰度投影算法一般分为三个步骤:一是灰度映射;二是投影滤波;三是矢量的提取。在本文的算法中,我们只关心灰度投影算法的一个步骤,即灰度映射。其投影分为两个一维波形,投影公式如下:
其中,Gray_X(i),Gray_Y(j)分别表示视频第k帧的第i行,j列的灰度值。f(i,j)表示第k帧图像在第i行第j列的灰度值,其中图像的大小为MN。
3 灰度投影与块匹配相结合的算法
基于灰度投影算法运算量小,运算速度快的特点及块匹配全局搜索算法精度高的特点。遂将两者充分利用,介绍一种新的稳像算法。
下面取视频中两幅不同帧的大小为MN的图像为例,设一幅为参考帧H,另一幅为当前帧K,现将算法的步骤描述如下:
(1)将图像H和K分为22大小的块,即分为四象限A,B,C,D。如图2所示。
(2)利用公式(7)(8)将图像H和K分别进行灰度投影,得出它们在X轴Y轴上的灰度值,求出两幅图在X轴Y轴上的四个灰度峰值H_X_Max,H_Y_Max,K_X_Max,K_Y_Max。此时需要注意的是,因为边界常有物体进出,所以在灰度投影时需要去除图像四周10%--15%的区域,以避免对下一步的判断产生影响。
(3) 根据H_X_Max,H_Y_Max,K_X_Max,K_Y_Max的大小关系可以判断出K图像相对于H图像的偏移方向,这时可以选定A,B,C,D中的某一象限(如A)作为后续块匹配工作的目标区域。
(4) 在K中选取待匹配的块T,选择的原则是:将中心坐标点p1(xmid,ymid)作为一顶点,在目标区域中选择一点p2(x,y)作为p1的对角点,其中点p2的选择需在上一步确定的目标区域(如A)中且块T的相邻两边平行于X,Y轴。如图3所示。
(5) 将图像K中匹配块T在图像H的A目标区域中以全局搜索的模式做块匹配,寻找匹配块,计算偏移差值。
(6) 在块T匹配过程中,计算相应的MSE值,每次匹配完后,将最小的MSE值作为一阈值保留,并保存最小MSE值所对应的偏移量(dx,dy)。在下次匹配时,当MSE值超过这一阈值,即刻停止匹配。如果MSE值小于此阈值,更新阈值及偏移量(dx,dy)。
(7) 全部匹配完毕后,取最小值MSE所对应的运动偏移量(dx,dy)作为后续运动补偿的参数。
4 实验结果及分析
选取视频中的两帧图像作为实验的数据,两帧分别作为参考帧(图4(a))和当前帧(图4(b)),其中当前帧和参考帧相比有向左抖动的趋势,图像整体向右偏移。图5为经过算法步骤(2)所得出的灰度投影结果,算法步骤(3)便根据图5的偏移趋势来进行目标象限的判断。图4(c)为当前帧经过运动估计以及初步运动补偿后得到的图像,可以看到图像有较明显的向左上偏移的趋势,其中右边界和下边界出现黑色区域,正是由于图像偏移导致的区域空白所造成的。图4(d)为经过完整补偿后得到的最终图像。
对稳像算法的评价往往从两个方面来看:准确度和效率。稳像的准确度通常使用PSNR参数来衡量。峰值信噪比(PSNR)是一种图像序列间稳定程度的客观评价方式,PSNR可以作为评定图像质量的品质因子,PSNR值越大,说明经过补偿后的图像更接近于原图像。PSNR算法的表达式如下:[6]
通过表1可以清楚的看到最后经过稳像后的图像的PSNR值明显高于未经处理的图像,并且高于经过灰度投影算法得出的PSNR值。说明本文算法处理图像的精度已经达到了较好的水平。
效率问题即帧处理率关系到系统能否对动态图像进行实时处理,由运动矢量估计算法的运算速率决定。评价运算速率的标准是时间复杂度,也就是算法的运算次数及花费的时间。如果假设以往的块全局匹配算法匹配块需要在MN的区域范围内和所有候选块进行匹配,那么在本文的算法中,由于图像经过灰度投影算法,从而可以判断出图像的大致偏移方向,即可以把匹配块的搜索区域锁定在(M/2)*(N/2)的目标区域,最终将全局匹配的计算量减少3/4。关于匹配块选在中心的位置,是考虑到一幅图像中人们所关心的物体对象往往处于中心的位置,所以这样选择最大限度的囊括了图像的最有特征区域,提高匹配的精度,同时简化了匹配块的选取的过程。阈值的使用同样对减少运算量起到很大的作用,从图6的两幅对比图来比较,可以清楚的看到使用阈值很大程度上减少了运算量。
此外,对算法的运算量和精确度产生影响的另一个因素就是匹配块区域大小的选择,结合到本文的算法中,就是图3中p2点的选取。我们从图6,图7可以看出p2点的选择对运算量及误差值(MSE值)产生很大的影响。通过两图可以总结出大致趋势,即运算量呈中间高四周低的趋势,误差值呈中间低四周高的趋势。所以p2点要对运算量及误差值充分衡量后做出恰当的选择。
5 总结
本文基于块匹配,提出了一种新的匹配搜索方法,极大的继承了全局搜索的高精度的优势,同时利用灰度投影算法将块匹配的匹配区域定位到一个象限中,简化了计算步骤,是对其的一个瘦身’过程。通过最后的实验,可以看出其有较高的稳像准确度,完全能达到全局匹配的精确度。可以用于对稳像精度要求较高的环境中。
摘要:在视频稳像过程中为兼顾算法的精度与效率,本文通过分析稳像的原理及目前常用的几种算法,提出了一种基于灰度投影和块匹配相结合的匹配策略。首先运用灰度投影算法来缩小块匹配的待匹配区域,然后运用块匹配算法进行运动估计与补偿。在此过程中,充分地体现了灰度投影算法运算量小以及块匹配算法精度高的特点。实验结果表明在保持块匹配算法优势的同时降低了算法的运算复杂度。
关键词:视频稳像,灰度投影,块匹配,精度,运算复杂度
参考文献
[1]刘玉红,涂丹.数字图像稳像算法研究[J].计算机仿真,2008,(07):200-204.
[2]王旸,冯驰.基于块匹配的电子图像稳定算法[J].咸阳师范学院学报,2006,(04):36-38.
[3]Filippo Vella,Alfio Castorina,Mancuso and Giuseppe Messina Digital image stabilization by adaptive block motion vectors fil-tering[J].IEEE Transactions on Consumer Electronics2002,48(3):796-801.
[4]Sung-Jea Ko,Sung-Hee Lee and Seung-Won Jeon.Fast digital image stabilizer base on gray-coded bit-plane matc-hing[J].IEEE Transactions on Consumer Electronics1999-&598-603.
[5]朱娟娟,郭宝龙,冯宗哲.一种基于灰度投影算法的电子稳像方法[J].光子学报,2005,(08):1266-1269.
[6]狄红卫,刘显峰.基于结构相似度的图像融合质量评价[J].光子学报,2006,35(5):766-771.
灰度投影算法 第2篇
关键词:卫星装配,电子稳像,分区灰度投影,随机抖动
0 引言
卫星是一种将机、电、热等产品高度耦合的系统, 其结构复杂、功能繁琐。当前, 将光学相机、实验装置和仪器、通信和探测设备、空间望远镜驱动机构、支架和天线等单机设备集成于卫星系统的趋势日益明显。这些设备对地面装配的精确度和实时性均要求很高, 然而目前的卫星装配技术发展较慢, 整个装配过程仍主要依赖工程人员的经验进行定性判断, 人工操作必然存在无法数字化测量配件间的相对位置、位姿调整不可量化、关键对接部位可视性不强的状况。因此, 如何通过稳像、识别、标定和导航等前沿技术, 使机器人系统能取代人工操作完成卫星的精确实时地面装配, 成为当前制造业领域的研究热点。
在卫星的地面装配过程中, 摄像装置通常会伴随着机器人系统同步移动。由于载体的振动和姿态的变化, 视频画面不可避免地会产生抖动, 影响机器人系统的精确装配。电子稳像技术能够通过估计全局运动矢量 (或者运动补偿矢量) 消除随机抖动, 使输出的视频画面趋于平稳, 成为当前解决以上问题的主要手段之一[1,2,3]。
近年, 国内外广泛研究的电子稳像算法主要基于块匹配和灰度投影。经典块匹配算法[4]是国际上普遍认可的用于评估稳像算法性能的标准算法, 但其实时性较差。相关学者主要是通过选择合适的搜索路径以及快速完成块区域的匹配来提升算法的实时性的, 比如三步搜索法、菱形搜索法、阈值法、代表点法等[5,6,7,8,9,10]。
以上基于块匹配的相关稳像算法具有较高的精确度, 但是其实时性仍然无法满足实际工程的应用要求。传统的灰度投影算法[11]具有明显的速度优势, 但是, 在低对比度的视频画面中, 由于灰度投影曲线的变化不明显, 无法精确解算出全局运动矢量。相关学者主要通过选择可靠的投影方式来提升算法的稳定性和精确度, 比如梯度投影法、圆周投影法等[12,13,14,15]。
以上基于灰度投影的相关稳像算法具有优良的实时性能, 但是稳定性和精确度仍然难以满足实际工程的应用需求。另外, 常见的电子稳像算法, 如:基于位平面的稳像算法[16]和基于特征点匹配的稳像算法[17]等, 也不能满足应用需求。
针对传统灰度投影法在低对比度画面中稳像精确度不足以及块匹配相关算法实时性能差的问题, 本文采用了一种基于分区灰度投影的稳像算法来解决卫星装配画面的随机抖动问题。
1 基于分区灰度投影的稳像算法
1.1 图像子区域的划分和删选
为保证有足够的重合比例, 依次选择前后相邻两帧作为基准图像和当前图像进行子区域划分。在投影前, 首先需要避免由于该区域对比度不明显造成局部运动分量估计偏差较大的问题出现。解决方案是将所有子区域划分为相同大小的四个矩形块, 然后依次循环相减, 计算相邻矩形块间的像素绝对差和:
其中, FSAD表示绝对差和, (xtk, ytk) 表示第t个子区域中第k个矩形块左上角的坐标值, k=1, 2, 3, 4, M和N表示矩形块的行数和列数。将计算结果与预先设定的阈值比较, 只有当所有矩形块的绝对差和均高于阈值时, 当前子区域才进行灰度投影运算。
1.2 灰度投影运算
对以上满足阈值条件的子区域分别向水平和垂直方向进行投影。无论是水平方向还是垂直方向, 其边缘区域具有唯一性, 导致子区域的投影曲线在边缘处存在差异, 影响子区域的局部运动矢量估计精度。而投影曲线的中间区域具有相近的波峰和波谷, 只是位置存在偏差 (即局部运动矢量) , 故只取投影曲线的中间部分作为子区域水平和垂直方向的投影结果。另外, 通过间隔取点的方式, 在几乎不影响精度的情况下, 成倍地缩短了算法的执行时间。具体的投影公式如下:
式中, Wp (j) 为第p个子区域中第j列像素灰度值垂直方向投影的累加和;Hp (i) 为第p个子区域中第i行像素灰度值水平方向投影的累加和;Kp (i, j) 为第p个子区域在 (i, j) 坐标处的像素灰度值。
1.3 求解全局运动矢量
对基准帧与当前帧图像对应子区域的灰度投影结果采用互相关运算, 根据两条相关曲线的波谷, 确定当前帧图像子区域相对于基准帧图像子区域的水平和垂直方向局部运动分量;然后, 计算局部运动分量的平均值即可得到全局运动矢量:
式中, Pi (j+w-1) 为当前帧图像第i个子区域投影范围的第j+w-1列像素灰度投影累加和;Qi (m+j) 为基准帧图像第i个子区域投影范围第m+j列的灰度投影累加和;G (w) 为像素灰度投影累加的差值结果;wmin为G (w) 取最小时的w值;tiy为当前帧图像第i个子区域相对于基准帧图像第i个子区域在水平方向的局部运动矢量;dy为对应的全局运动矢量;m为运动估计的最大抖动范围;MP为子区域的行数。
同理可计算出垂直方向的全局运动矢量。但是, 考虑到机器人系统的装配画面中可能存在运动前景目标, 该子区域的局部运动分量估计结果将严重干扰全局运动矢量的计算, 甚至可能导致稳像失败。因此, 本文采用一种基于平均误差门限的迭代算法消除运动目标区域对全局运动矢量估计精度的影响, 详细流程如图1所示。在排除含有前景运动目标的子区域后, 即可求解最终的全局运动矢量。
1.4 运动补偿矢量的计算
当摄像装置辅助卫星机器人装配时, 基准帧和当前帧图像的全局运动矢量可能由正常扫描的低频分量及异常抖动的高频分量组成, 也可能只包含异常抖动的高频分量。在对图像进行运动补偿时, 只需要补偿摄像装置的随机抖动。机器人系统的正常移动通常具有阶段性的幅值和方向一致性, 是平滑的低频矢量, 而抖动分量的幅值和方向则具有随机性。据此可判断当前图像是否含有正常扫描运动。在判断完毕后, 若不存在扫描运动分量, 则当前的全局运动矢量即为所求的运动补偿矢量;否则, 从实时性和有效性方面考虑, 采用均值滤波的方式首先计算多帧图像的低频扫描分量, 然后将全局运动矢量依次与扫描运动分量作差, 获得剩余的高频抖动分量, 即为每帧图像的运动补偿矢量。
2 实验分析
为确保本文算法对卫星装配画面的稳像效果, 实验分别创建自然场景图像库和卫星装配的模拟装配图像库予以验证, 并将基于分区灰度投影的稳像算法与传统灰度投影法、块匹配遍历搜索算法进行比较。所有实验均在安装2.50GHz CPU、4GB内存、Windows7操作系统的计算机平台上通过MATLAB 2010编程实现。同时, 统一将图像的分辨率转换为512像素×512像素。实验内容包括: (1) 创建自然场景图像库和卫星装配的模拟装配图像库; (2) 根据稳像前后两帧图像的峰值信噪比值和差分结果评价各算法的精确度; (3) 通过统计各算法对前后两帧图像的稳像时间衡量实时性能; (4) 展示利用本文分区灰度投影算法对模拟装配图像的稳像效果。
2.1 两组图像库的建立
首先, 创建自然场景的图像库。创建60组 (每组6幅图像) 共360幅自然场景图像, 每幅图像均存在不同程度的随机抖动。本文选择其中一组作为测试集1, 进行各稳像算法具体的性能评估实验, 其中图像库的第31~36幅图像 (即测试集1) 如图2所示。选取当前自然场景图像的原因在于:图中天空、山脉和花朵占据着自然图像的绝大多数区域, 图像的对比度信息非常微弱, 这将更加有效地考验各算法的性能。
然后, 构建卫星装配的模拟装配图像库。通过摄像装置采集存在随机抖动的低对比度装配视频模拟卫星装配过程, 利用其中具有代表性的部分帧构建60组 (每组6幅图像) 共360幅图像。从中选取一组作为测试集2, 进行各稳像算法的性能评估实验和效果展示, 其中图像库的第31~36幅图像 (即测试集2) 如图3所示。
2.2 各算法的精确度分析
峰值信噪比 (PSNR) 是一种图像序列间稳定程度的客观评价方式。因此, 本文首先通过稳像前后相邻两帧图像的峰值信噪比值TPSNR衡量各算法的精确度, 具体计算如下:
其中, f (x, y) 和g (x, y) 表示基准帧和当前帧图像, M和N表示图像的行数和列数, TMSE表示均方差值。若利用式 (7) 、式 (8) 计算出的稳像后的TPSNR值相比于稳像前的值有明显提升, 则认为当前稳像方法能够消除或减小图像间的高频随机抖动。表1是块匹配遍历搜索法、传统灰度投影法和本文基于分区灰度投影的稳像算法对测试集1、2中的六帧图像进行稳像前和稳像后的平均TPSNR值。
从表1可以看出, 块匹配算法作为国际上普遍认可的全局运动估计方法, 稳像后的TPSNR值增幅最大, 达到143.2%和99.1%, 具有极佳的稳像精确度。传统灰度投影算法由于受到低对比度信息的干扰, 稳像后的TPSNR值增幅最小。特别是在具有大面积相似信息的测试集1中, 该算法的全局运动矢量估计偏差更大, TPSNR值增幅只有23.0%。而本文基于分区灰度投影的稳像算法在稳像后, TPSNR值有大幅度提升, 达到142.1%和96.7%, 能够非常接近甚至达到块匹配遍历搜索算法的稳像效果, 相比于传统灰度投影算法TPSNR值的增幅达到119.1%和55.8%, 精确度具有明显的优势。
同时, 本文采用部分差分图像直观地反映各算法的稳像效果, 如图4、图5所示。其中, 图4表示块匹配遍历搜索算法、传统灰度投影法和本文基于分区灰度投影的稳像算法利用测试集1中的第3帧和第4帧灰度图像进行稳像前和稳像后的差分效果图。图5表示相关算法利用测试集2中的第3帧和第4帧灰度图像进行稳像前和稳像后的差分效果图。这里差分图像中的剩余灰度信息量反映着各算法稳像性能的优劣。
从图4、图5中同样发现, 由于图像中存在低对比度区域的干扰以及前景目标的移动, 采用传统灰度投影算法估计的全局运动矢量偏差较大, 造成差分图像中存在大量灰度值不为零的区域, 稳像效果并不理想。而采用本文基于分区灰度投影的稳像算法能够消除图像中的随机抖动, 接近甚至达到与块匹配遍历搜索算法相似的稳像效果。
另外, 由于测试集1中的图像对比度信息更加不明显, 能够直观反映各算法的稳像性能, 因此本文进一步将差分图像 (图4) 的灰度信息按列方向投影累加。曲线图中累计灰度值越低, 说明基准帧与当前帧图像的相似度越高。差分图像中间列 (129~384) 的投影曲线如图6所示。图7对应图6投影曲线部分区域的放大, 从图7中能更加清晰地看出各算法的差分效果。图6、图7的曲线分布再次验证了分区灰度投影算法的优良性能。
1.参与帧与校准前的当前帧作差分运算2.参与帧与校准后的当前帧作差分运算
2.3 各算法的实时性能分析
通过统计测试集1和测试集2中所有前后两帧图像的平均稳像时间, 评估本文基于分区灰度投影的稳像算法、块匹配遍历搜索算法和传统灰度投影算法的实时性能, 具体数据如表2所示。统计结果显示, 本文方法相比于传统灰度投影法虽然增加了区间划分和优化筛选等步骤, 但并未明显增加算法的执行时间;同时, 本文算法的稳像时间只有块匹配算法的0.5%, 具有显著的实时性优势。
2.4 分区灰度投影算法对模拟装配图像的稳像效果
实验发现, 本文算法能够克服模拟装配图像中低对比度区域的干扰以及前景目标移动的影响, 准确估计出全局运动矢量。利用本文基于分区灰度投影的稳像算法对测试集2中连续六幅装配图像的稳像效果如图8所示。稳像后的所有图像依次输出, 可以获得平稳连贯的视频装配画面。
3 结语
灰度投影算法 第3篇
用于处理图像的软件有很多,比如MATLAB、HALCON、Visual C++、Lab VIEW等。与图像处理方法相似,这些软件在进行图像处理的同时也具有不同程度的不足。其中MATLAB的优势在于处理功能十分强大、操作界面简洁友好,并且具有一定的开放性,但存在的不足之处在于代码效率极低,比其他软件要低好几倍;Lab VIEW在代码、数据的基础上,可以实现图形化编程,并且具有较好的数据流传输特点和无限嵌套子VI等优点,但是,在驱动程序的实现和系统程序的调用方面存在较大不足,不能很好满足用户需求;HALCON则具有较为强大的视觉函数库,在处理图片时可以做到更为精准、速度更快,不足之处与Lab VIEW相似;Visual C++可以很好地实现各种程序或软件的开发建设,并且具有很高的代码效率,但Visual C++的代码在编写中复杂性非常强,也就是说,使用Visual C++开发软件程序,过程较慢、难度较大;Open CV也是处理图像的软件之一,是一种更为开放的数字图像处理和计算机视觉库,使用Open CV进行图像处理,其中具备是分开放的C源代码,还有较为统一的结构,具有较强的功能定义和强大的图像运算处理能力,方便用户使用的接口,Open CV还可以同时支持MS-Windows和LINUX,并且代码的编写相对简单,容量较小占用系统资源较小,利于整个程序实现。
2 采用同态滤波对图像进行处理
提高图像质量的方式有很多种,同态滤波是其中较为有效的一种。其操作原理主要是将频率过滤与灰度变换相结合,根据图像的实际清晰度、灰度均匀程度等,适当结合照度/反射率模型作为图像频域处理的基础,然后再对图像进行灰度压缩或者对比度增强来实现灰度的校正。
2.1 同态滤波原理分析
将图像在某一点(x,y)的灰度值s,假定为入射光照度i与反射率r的产物,在这一逻辑原理设定下,其相应的数学模型等式1为s(x,y)=i(x,y)*r(x,y),并且在这一模型等式中,0<i(x,y)<∞,0<r(x,y)<1。
通过以上等式可以看出,由于图像的实际入射光照度的变化不大,可以将这一特征视为低频成分,而反射率由于相关因素的影响导致其有较大变化,所以是高频成分。于是,再对图像的照度和反射率进行处理,即可改善灰度失真现象。同态滤波的处理流程如图1所示。
从图1可以看出,s为原始图像,t为处理后的图像,log表示对数运算,FT代表傅里叶变换,LF表示现行高通滤波器,IFT表示叶逆变换,EXP表示指数运算。
其具体算法步骤为:根据等式1可知,灰度s为乘法运算组合的形式,将其转换为对数运算的乘积模型,等式2为ln s(x,y)=ln i(x,y)+ln r(x,y),在此基础上将时域空间转化为频域空间,对等式2进行傅里叶变换,可以得出一个新的等式3,即F(u,v)=I(u,v)+R(u,v)。在频域空间进行一定的滤波处理,目的在于减少光照不均匀对图像整体质量的影响,在降低照度分量的同时提高反射分量,同时采用线性高通滤波,转换得到等式4:G(u,v)=H(u,v)*F(u,v)=H(u,v)*I(u,v)+H(u,v)*R(u,v)。完成这一步骤的滤波转换后,需要对图像进行时域转换,即对等式4进行傅里叶逆变换得出等式5:g(x,y)=F-1{H(u,v)*F(u,v)}。
在完成以上多重流程步骤的转换运算后,对等式5进行反对数的变化,可以得出同态滤波处理后的图像t,即t(x,y)=exp{g(x,y)},经过一系列的运算转换得出这一等式的数值后,即完成同态滤波图像灰度校正的算法。
2.2 采用Open CV实现同态滤波的算法
根据以上对同态滤波算法原理的分析,当采用Open CV进行灰度校正时,原理不变,使用代码来实现图像的处理,更加简单快捷。
2.2.1 像素点对数运算的Open CV编程实现
像素点对数运算在图像处理过程中有着较为重要的作用,因为图像的像素越高,相应的显示效果就会越好,反之则效果越差。像素点的对数运算,主要是将灰度不均匀的图像像素数值经过对数函数的运算,然后将其映射到相应的目标空间,以目标空间的具体映射数值为最终像素值。
实现这一部分编程代码的编写,需要用到Open CV软件中的Ipl Image来对图像的头部src Image进行定义设计,提取出坐标(x,y)处的像素值val,在得出的等式基础上,使用相关的函数标签对灰度值做出以e为底数的对数。最终得出Val=((uchar*)(src Im g→image Data+src Im g→with Step*y))[x]=val这一等式。当运算到这一步骤时,也就完成了Open CV编程像素点对数的运算。
2.2.2 傅里叶变换及逆变换的Open CV编程实现
傅里叶变换在图像的预处理中,可以实现图像相应序列的变换,也就是将空间域和频域结合起来,原有的空间序列可以通过一定的变换得出与之相对应的频域中的序列。而逆变换则是在已有频域基础上,进行反变换处理得出空间域中相对应的序列。
函数的基础原型为:viod cv DET(const Cv Arr*src,Cv Arr*dst,intflags)。在这一函数代码中,src和dst是输入和输出的变量数组,在运行过程中需要注意这两个数组要保持同样的数据类型和容量大小,flags是数据或数组变换的标志,cv_dxt_forward表示数据信息在实现正向一维或者二维的变换,cv_dxt_inverse则表示进行逆向的变换,根据图像的实际情况,使用cv_dxt_scale,可以更加便利地实现最终结果的缩放。
3 减去背景算法的实现
3.1 背景估计的Open CV编程实现
通过利用Open CV编程中的相关函数进行形态滤波算法的背景估计,所需要用到的函数为cv Create Structuring Element Ex,并且在实现的代码中需要对元素的行和列的具体数量、元素的锚点和水平、垂直偏移量、元素指针包括元素的结构形状等进行相应的赋值,通过函数等式的运算,得出具体数值,才能完成整体的背景运算。
在此基础上,可以对图像进行形态学的开、闭操作,开操作是指先膨胀、后腐蚀,闭操作则与之相反。根据做出的操作,来进行图像背景亮度的估计。
3.2 原图像与背景图像相减的Open CV编程实现
在Open CV编程实现的过程中,像素点的数值是重要的运算数据,因为有了这一数据的支持,图像灰度校正的运算过程会更加准确和清晰,将原图像与背景图像相减,得出具体的元素差值,不仅提升运算结果的准确性,对Open CV编程的实现也起到了非常积极的影响。函数原型为:
Void cv Sub(const Cv Arr*src1,const Cv Arr*src2,const Cv Arr*dst,const Cv Arr*mask=NULL)
在这一代码原型中,src1和src2是为求出两者的差值而输入的两个数组,dst表示输出的数组,mask为操作掩码。
4 使用Open CV处理的图像效果
笔者基于Open CV编程,结合相关的灰度处理算法,实现对光照不均匀和低噪信比的灰度不均匀图像的处理,根据其实际情况进行同态滤波和去背景的处理。
首先是对光照不均匀的图像进行处理的结果,图像处理前和处理后的对比,处理前的图像中的墙壁等轮廓模糊不清晰,细节部分体现不出来,在经过Open CV编程进行同态滤波的灰度校正方法处理后,墙角的一些直线以及墙壁都呈现出清晰明了的状态,并且图像的整体亮度和色彩度,也都有了明显改善。
通过Open CV编程算法实现对低信噪比图像的处理,可以明显看出处理前的图片较为平面化,没有立体感,并且灰度分布不均匀现象相对明显,米粒的轮廓也不够清晰,而经过减去背景灰度算法处理过后,图像呈现出了较好的立体感,灰度分布更加均匀。图像达到了这样的效果,主要依赖于将原图像与背景图像进行相减处理,实现了灰度均衡的效果。
5 结语
笔者利用Open CV编程对存在光照不均匀的图像进行同态滤波处理,对低信噪比图像进行减去背景法的处理后,纠正原图像的灰度不均匀现象,并且得出的效果比较好。利用Open CV图像灰度校正算法对图像进行处理,具有较好的处理效果,跨平台使用的开放性较强,同时简化了图像处理过程,编程变得更加简单快捷,相对其他图像处理方法,Open CV可以满足计算机视觉系统的需要,同时更好地满足用户的使用需求。
参考文献
[1]刘佳男,张秋菊.基于Open CV的图像灰度校正算法的实现[J].江南大学学报(自然科学版),2011,(6):662-666.
灰度投影算法 第4篇
目前,在变换域中实现图像加密压缩的文献较少[3,4,5,6]。文献[3]较早做了在DCT变换域中实现图像加密压缩的工作,但出现加密后的系数不在原始系数的取值区间,且不能表示成2的幂的形式,无法简单地用诸如异或运算等方式实现加密。文献[4]给出的是一种只对非零系数进行加密的方法,其加密压缩的效果并不能令人满意,所以人为地对数据进行选择性加密会影响其安全性。文献[5]解决了加密后的系数落在原始系数区间的问题,但效率较低,加密运算需要迭代次数过多,并且使用一维混沌序列的加密强度还有待加强。文献[6]中提到的CWF算法在小波域中进行加密压缩,但其破坏了小波变换的多尺度分解树型结构,势必严重影响图像的可压缩性。
为了保证图像信息的安全性和压缩效率,笔者对图像加密压缩进行了研究,提出一种基于骑士巡游的灰度图像加密压缩方法。首先对原始图像进行88分块操作,再对每个88块进行DCT变换,产生的一个系数块化矩阵;然后对该系数块化矩阵采用骑士巡游进行以块为单位的置乱加密;最后经压缩后得到加密压缩图像。这样得到的加密压缩图像既能保证一定的安全性,又能保证较高的压缩率。
1 骑士巡游及置乱加密原理
18世纪50年代末,著名数学家Euler[7]率先提出了骑士巡游问题。骑士巡游问题(Knight’s Tour Problem),简称KTP,来源于国际象棋,就是骑士(马)从棋盘上的某个初始棋格开始,以跳“斜日”的方式跳遍棋盘上的每个棋格一次仅且一次的一种方案[8]。骑士的巡游只由少数几个参数(骑士巡游起始位置、巡游规则等)控制。在棋盘上建立坐标系,将棋盘左上角视为原点,棋盘上的每一格视为对应坐标系上一个点。则骑士巡游起始位置k1(x,y)就表示骑士从(x,y)格上开始移动。巡游规则k2[i,j]表示骑士每次移动的方法,即水平方向跳i个棋格,垂直方向跳j个棋格,或相反。例如k1(1,1),k2[1,2]的骑士巡游如图1a所示。一个mn的棋盘上骑士巡游路径可以用骑士巡游矩阵T进行表示,其中矩阵T中1表示骑士巡游的起点,mn表示巡游的终点。例如,一个88棋盘上k1(1,2),k2[1,2]的骑士巡游路径可以用图1b所示的矩阵来表示。其中,第1行第2列的元素1表示骑士巡游的起点,第1行第1列的元素64表示骑士巡游的终点,t表示骑士第t步所处棋盘上的位置,t=1,2,,64。置乱加密基本原理就是将矩阵T中位置1的元素移动到位置2,位置2的元素移动到位置3,以此类推,最后将位置mn的元素移到位置1上。
经多年来的研究表明,骑士巡游在图像加密上的应用[9,10]效果非常好。笔者在骑士巡游置乱加密图像的基础上,将加密与压缩结合,研究新的图像加密压缩算法。
2 基于骑士巡游的图像加密压缩算法
2.1 算法思想
由于图像JPEG压缩中的DCT变换是以88作为最小单元进行变换。因此本文提出的算法将原始图像进行88分块操作后,对块化后的图像进行DCT变换得到系数块化矩阵。将系数块化矩阵中的每一块视为棋盘上的棋格,按照骑士的移动规则对每块进行移动,以实现图像中的块置乱。再经JPEG压缩后,就得到加密压缩图像。这样,由于块化操作,使得每一个小块内依然具有原有的相关性,就能很好地防止压缩率降低的问题。
这里提出一种加密压缩流程,如图2所示。
2.2 原理与步骤
设原始图像为Imn,加密后图像为I'mn,加密压缩后图像为I″mn。本文加密压缩算法表述如下:
1)读取原始灰度图像Imn,对其先进行88分块,将图像分成kl个小块,然后对每一块进行DCT变换后,得到系数块化矩阵Ckl。其中,表示下取整。
2)根据前面第2节的介绍,选择起始位置k1(x,y)、巡游规则k2[i,j]作为初始密钥,使用文献[11]中的算法得到骑士巡游矩阵Tkl。
3)将Ckl中每个88块看成Tkl上的一格,使Ckl与Tkl中元素一一对应。根据骑士巡游置乱原理进行骑士巡游块置乱,得到加密后的系数块化矩阵C'kl。
4)对C'kl进行DCT逆变换,将逆变换后的数据块化还原,得到加密后图像I'mn。
5)令Imn=I'mn,重复步骤1)至5),直至得到满意的加密效果为止。最后将I'mn进行JPEG压缩,得到最终加密压缩图像I″mn。
解密是上述过程的逆过程。
3 算法仿真与评价
3.1 直观效果
通过对256256的Lena和Baboon两幅测试图像进行5次循环加密实验,设置初始密钥k1(1,1),k2[1,2]和k1(1,2),k2[1,4],其加密压缩效果分别如图3和图4。
可以看出基于骑士巡游的加密压缩方案得到了较好的加密效果,而且解密的效果理想。
3.2 置乱度
置乱度(SM)用来评估图像被置乱或加密程度,即图像加密的直观效果好坏的重要指标,它能较为客观地反映图像的加密效果。目前,许多文献都给出了置乱度的定义,但又各不相同。这里引用文献[12]中定义的置乱度来评估图像的置乱或加密程度,其计算式为
式中:I={Iij}MN表示原始图像,珓I={珓Iij}MN表示置乱或加密图像,R={Rij}MN表示与原始图像相同大小的均匀分布噪声图像。为了使得加密图像的置乱度具有可比性,通常采用同一幅均匀分布的噪声图像。本文取k1(1,1),k2[1,2]为密钥,得到的实验结果如表1。
为了提高算法的压缩率,采用了块化操作,这使得加密置乱的单位是88块而不是单个像素,从而导致加密的置乱度有一定下降,可通过增加循环加密次数来解决置乱度较低的问题。
3.3 压缩率
压缩率作为图像压缩的一个评价指标,其计算式为
在压缩率测试中,采用256256的Lena图像进行测试。算法选择k1(1,1),k2[1,2]的骑士巡游矩阵作为密钥,文献[15]采用阈值为100时的最好效果,经过1次加密后得到压缩率如表2所示。
随着本文算法加密次数的增加,压缩率将保持不变。其结果如表3。
可以看出,采用基于骑士巡游的灰度图像加密压缩算法在压缩性上较文献[15]提高了不少,接近对原始图像直接压缩的效果。并随着加密次数的增加,压缩率基本保持不变。因此选取加密次数为5次,以节约运算时间。
3.4 安全性分析
骑士巡游矩阵作为密钥时,其密钥空间如表4所示。
结果表明,对于一个88的棋盘,其拥有的骑士巡游矩阵的数量至少3.0191022个。由于人眼可以分辨其内容的图像大小一般为5050以上,所以用骑士巡游矩阵作为图像加密的密钥,其密钥量将会是个天文数字。换个角度来说,用骑士巡游矩阵作为密钥时,其密钥空间足够大。
图像加密还要求较高的密钥敏感性,即密钥之间发生变化时,就能够导致解密失败。这样就能保证密码系统针对穷举攻击、统计攻击的安全性。这里使用初始密钥k1(1,1),k2[1,2]进行一次图像加密,分别用密钥k1(1,2),k2[1,2]和k1(1,1),k2[1,4]解密Lena图像,其解密效果如图5所示。
仿真实验表明,骑士巡游矩阵的密钥发生变化时,就无法正确解密出原始图像。因此,本文的加密压缩算法对骑士巡游棋盘密钥具有很好的敏感性。
4 结束语
一种16位灰度图像自动调窗算法 第5篇
传统的调窗方法通常是人工调窗,人工调整窗宽和窗位需要凭经验,耗时较多,不利于提高用户的工作效率。为解决这一问题,国内外研究人员对自动调窗开展了研究,目前已经提出了几种自动调窗方法[3,4],但是这些调窗方法通常是针对某一种特定直方图分布,而对于其他分布的图像效果很差。文献[3]提出了一种磁共振图像自动调窗算法。算法是将直方图从第一个灰度自左向右进行面积累加,当累加的直方图面积占到整个直方图面积的72%时对应的灰度值作为窗位,然后根据经验设定固定窗宽。该算法是针对磁共振图像画面相对于整幅图像过小的情况效果良好。文献[4]则提出了一种针对直方图分布为双峰情况的自动调窗算法。该算法对具有大片暗背景的16位灰度图像处理效果较佳,其中心思想是去除直方图中最左边的第一高峰,将第一高峰后面的局部极小值点的灰度值作为窗底,然后搜索剩余直方图中的最大值,令其灰度值作为窗位。提出了一种自动调窗算法,该方法可以处理不同直方图分布的灰度图像,可以满足大多数16位灰度图像自动调窗的要求,适用于工业生产,可缩短图像预处理时间,提高用户的工作效率。
1 基本概念
窗位是指显示图像数据的中心值或平均亮度,窗宽是指整个显示窗口的上界和下界之间的灰度范围[3]。调窗处理是指在16位灰度图像的灰度级中,选取出一定范围的灰度级进行显示,并将大于这一范围的像素全部置白(即255),小于这一范围的全部置黑(即0)。16位灰度图像的像素有65 535个灰度级,而普通显示器只能显示256个灰度级的图像,并且人眼一般只能分辨出64个灰度级的变化,因此在工业应用中,需要通过调节窗位和窗宽以便人眼能分辨图像中不同密度的组织结构或细节[5]。
传统的调窗方法是通过移动窗位来查看感兴趣的组织和细节,通过调整窗宽改变显示图像的灰度范围。增大窗宽,可以显示的不同密度的组织增多,但各结构之间的灰度差减少;减小窗宽,则显示组织结构减少,但各组织之间的灰度差增加。原始图像数据与显示图像数据之间有如下的转换公式
式中,V为原图像数据;G为显示图像数据;gm为显示器最大显示值(文中为255);w为窗宽;c为窗位。
2 文中的自动调窗算法
根据研究大量16位灰度图像(文中所用为临床DR图像)发现,这些图像的灰度直方图一般有如图1四种分布。
对于图1中的四种情况,文中采用不同的处理方法。
图1a所示的直方图是16位灰度图像中灰度分布比较普遍和简单的一种情况,这种图像的灰度分布比较集中,图像整体偏暗,对比度不高。对于该类图像,调窗算法步骤为:
(1)将灰度直方图平滑为一条光滑的曲线,并找出其峰值点;(2)窗口的上界R和下界L的确定方法:找到最高的峰值点a,从a按照灰度增长的方向找到离其最近的极小值点作为窗口的上界R,然后按照灰度减少的方向找到离其最近的极小值点作为窗口下界L;(3)窗宽w和窗位c的计算:窗宽w为窗的上界与窗的下界的差,窗位c为窗的上界与窗的下界的中点,即:w=R-L,c=(R-L)/2+L
对于图1b~图1d三种直方图,步骤(1)和步骤(3)处理方法相同,步骤(2)不同。
图1b所示的双峰情况是16位灰度图像中最常见的情况,第一个峰位于直方图的左侧,是由背景图像形成的高峰,第二个峰略低缓一些,主要由有用图像和噪声组成。该类图像一般会有一个比较黑的边框。对该类图像,步骤(2)算法为:
找到其中最大的峰值点a和次最大峰值点b,找到a与b之间最小值的灰度作为窗口的下界L,然后从b按照灰度增长方向找到离其最近的且灰度占比数小于P(具体可以尝试,一般是用2 000)的极小值点作为窗口上界R。
图1c所示的是单峰偏亮的图像,图像有大面积的亮背景,该情况下步骤(2)的算法为:
找到最大峰值点a,然后从a按灰度减小的方向找到离其最近的极小值点作为窗口下界L,通过观察发现这种情况下,a的右边有一个占比非常高的灰度,通过实验可以证明其是图像与背景交界的像素,可以将其作为窗口上界R。
图1d所示的情况是灰度分布比较复杂的情况,这种情况一般会在直方图右边有两个比较大的峰,图像整体偏亮。对这类图像步骤(2)算法如下:
找到最大的两个峰值点a和b,再找到a与b之间最小值的灰度作为窗口上界R,然后从a按照灰度减小的方向找到离其最近的灰度占比数小于P的极小值点作为窗口下界L。
当读入一幅图像后,首先根据其直方图的分布判定它属于上述哪一类情况,然后调用相应的算法计算窗位和窗宽,实现图像的自动调窗。
3 实验结果对比分析
图2a~图2d分别是对应图1a~图1d灰度分布图像的调窗结果。
每幅图像的最左边是原始成像设备拍摄的灰度图像,第二个是用文中调窗算法的调窗结果,第三个是用文献[3]中所提算法的调窗结果,而图2b图像中的第四个则是用文献[4]中所提算法的调窗结果。
为了定量的比较调窗效果,计算了每幅图像的清晰度F,结果列于表1中。文中所用的是基于Laplace算子操作的图像清晰度评价方法。在空域上对图像进行微分可以获取图像的边缘及细节信息,边缘点的个数可以直观的反应出图像的清晰程度。计算公式如下
式中,M×N是图像的大小;Ixy是单个像素点Laplace代数和,由下式计算
其中,f(x,y)为像素点的灰度。
从图2可以发现,原始灰度图像质量很差,图像的清晰度和对比度很低,难以看清其中的细节。而经过调窗的图像质量相对于原图有明显的改善。从图2可以看出,文中提出的算法比文献[3]和文献[4]的算法效果更好。
从表1中的数据也可以看出,调窗后图像的清晰度有了很大的提高,并且文中算法的清晰度明显优于文献[3]和文献[4]的算法。
4 结论
调窗处理是针对16位灰度图像常用的图像预处理方法,图像处理的效果直接影响后续的操作和应用。通过对大量16位灰度图像研究和实验,提出了一种自动调窗算法,对大多数16位灰度图像都能进行自动调窗,并且具有良好的效果。文中算法在读入图像后自动判断图像的直方图类型,并根据直方图类型计算最佳的窗位、窗宽,此算法方便快捷,可以节约用户时间,提高工作效率。文献[3]中所提的算法,主要用于解决灰度图像中有用图像面积占比过小带来的问题,虽然比较简便,但该算法中窗宽是固定的,算法具有很大的局限性,需要有丰富的经验确定一个合适的窗宽,并且很难处理不同直方图分布的情况。文献[4]的算法只适用于直方图分布为双峰的情况,也就是图像有黑边框或有大片黑色背景的图像,对于其他类型的图像无法处理。文中的调窗方法能根据直方图分布自动选择相应的算法,并且可以根据图像的灰度分布情况选择适合的窗位和窗宽,因此适用于大多数16位灰度图像的调窗处理。
参考文献
[1]孙中柏.一种16位灰度图像无损压缩和解压缩方法[D].湖南:电子科技大学,2012.
[2]Gonzalez C R,Woods R E.Digital image processing[M].2nd edition:Prentice Hall,2001.
[3]沈琴,蒋谟文,骆建华.一种改进的核磁共振图像自动调窗算法[J].中国医疗器械杂志,2011,35(4):253-255.
[4]周振环,陈思平,陶笃纯,等.医学图像的自动调窗与分割[J].计算机工程与应用杂志,2005,22(2):331-334.
[5]张波,刘元.基于DCMTK的DICOM医学图像调窗显示方法研究[J].应用技术,2010,201:98-100.
[6]张尤赛,陈福民.DICOM医学图像窗口变换的加速算法[J].计算机工程与应用杂志,2003,39(13):218-220.
[7]张洁,杨丰,赵祺阳.一种基于无抽样方向滤波器组的抑制噪声的医学图像增强算法[J].中国医学物理学杂志,2009,26(2):1072-1074.
[8]周頔.医学图像处理中的若干问题研究[D].无锡:江南大学,2011.(下转第45页)
[9]扈佃海,吕续良,文刘强.一种改进的直方图均衡化图像增强算法[J].光电技术应用,2012,27(3):65-68.
[10]徐艳丽,谭剑.基于非线性反锐化掩膜的DR图像边缘增强[J].中国医学物理学杂志,2013,27(4):2013-2015.
[11]陈武凡.小波分析及其在图像处理中的应用[M].北京:科学出版社,2002.
一种基于灰度的三角形反走样算法 第6篇
在光栅图形显示器上绘制非水平非铅垂直线、多边形或圆弧等图形时,由于显示屏幕是由一系列离散的像素点组成的,图形的边缘会呈现锯齿形或台阶状。这种在用离散量表示连续量时,由于采样不充分而在重建后引起的失真,叫作走样(aliasing) 。用于减少或消除这种效果的技术,称为反走样(antialiasing)[1]。
图形的反走样技术一般可以分为两大类:第一类是增加采样频率,通常包括两种方式:一是提高屏幕的显示分辨率,使得每个像素的尺寸足够小,该方式受到硬件技术的限制;二是超采样方式[2,3],它通过在较高分辨率上对光栅进行采样,然后通过某种低通滤波方式滤除其中的高频分量,得到较低分辨率上像素点的属性值,再加以显示。这种方式很难控制反走样后图形线条的宽度,在计算量上也有一定的代价。第二类是在图形生成时调节图形边缘处像素点的灰度,从而降低图形边缘处人眼感知的灰度跳变,在视觉上产生消除锯齿的作用[4,5]。
目前,对于直线反走样算法的研究相对较多,其中较为经典的是Wu直线反走样算法[6]。由于三角形顶点处理的特殊性,一般的三角形反走样方法无法保证顶点处的绘制质量。本文结合多边形扫描线填充算法,将Wu直线反走样算法的基本思想推广到三角形反走样中,并对三角形顶点采用了一种特殊处理方法,取得了良好的效果。
1Wu直线反走样算法
Wu直线反走样算法的基本思想是在绘制直线的过程中,通过绘制一对跨骑着直线且灰度值经过调整的像素点{(xi,yi),(xj,yj)},来代替原本对于单一像素点的绘制,从而产生消除直线双边锯齿的作用。调整后的灰度值取决于这一对像素点与“理想直线”的相对位置关系,距离理想直线越近,灰度值越高。由于直线的斜率K情况不同,对于这一“点对”的选择方法也不一样。当
2三角形的绘制与反走样算法
本文将Wu直线反走样算法的基本思想推广到三角形反走样中,利用改变三角形边缘像素点灰度的方式进行总体反走样处理,与直线反走样不同的是,三角形的反走样要考虑消除三角形各边外侧的单边锯齿,而且对于顶点处的反走样处理相对复杂一些,需要特殊对待。
三角形绘制的总体步骤可分为三步:
(1) 首先将三角形三个顶点按照纵坐标进行排序,然后利用多边形扫描线填充算法逐行进行三角形内部像素点的填充,同时记录每条扫描线与三角形理想边界的交点位置信息。
(2) 利用(1)中得到的交点位置信息,对三角形各边外侧进行抗锯齿处理,对于某条扫描线上的某个三角形边缘像素点来说,其灰度值主要取决于像素点的中心与(1)中所述交点的距离。
(3) 对三角形三个顶点进行特殊的反走样处理。
2.1未反走样三角形的绘制
采用多边形扫描线填充算法对三角形内部像素点进行绘制时,遵循以下基本原则:屏幕上的像素点,如果其中心位于三角形三条理想边界包围的范围之内,则需要对其进行填充;否则,不需要对其进行填充。
为了配合之后进行的反走样处理,不能将扫描线与三角形理想边界的交点坐标值进行简单取整,作为对应于该扫描线的绘制起点和终点,而要考虑几种不同的情况:
(1) 一般情况下,一条扫描线会与三角形左侧(横坐标值较小的一侧)、右侧的两条理想边界各有一个交点,设交点的横坐标分别为xA、xB(不妨设xA< xB)。则该条扫描线的绘制起点的横坐标应为「xA⎤,绘制终点的横坐标应为「xB⎤-1。
(2) 纵坐标极值顶点(即纵坐标值最大或最小的顶点)处,扫描线与三角形左、右两侧理想边界的交点间的距离
2.2三角形边的反走样
边的反走样需要消除三角形各边外侧的单边锯齿,所以首先需要判断边的哪一侧是三角形的外侧。判断的依据主要有两点:一是三角形各边的相对位置,二是三角形各边的斜率K。具体的对应关系如图2所示。
找到了边的外侧之后,可以运用Wu直线反走样算法的基本思想,对三角形各边的外侧进行抗锯齿处理。图3中以边的上方为外侧的情况为例进行了说明,此时三角形边缘像素点的灰度计算公式为:
式中,I(m),I(n)为进行反走样处理前像素点m,n的灰度值,I′(n)为进行反走样处理后像素点n的最终灰度值,yO为三角形理想边界与m,n两像素中心点连线的交点O的纵坐标,a为交点O同m像素中心点的距离,b为交点O同n像素中心点的距离。注意,像素m是三角形内部点,其灰度值I(m)不需要发生变化。
2.3三角形顶点的特殊处理
2.3.1 纵坐标极值顶点
以纵坐标值最大的顶点为例,一般情况下(排除其所在边为水平边情况)扫描线y=ymax会与三角形两条理想边界交于两点,两交点之间的像素点已经在上述步骤进行了绘制和反走样,但该扫描线上方的若干点也属于三角形的边界点,还需要对它们进行反走样处理,如图4中的像素点a~e。
对于像素点a~e中的任意一点u,设u,u′两像素中心连线与三角形理想边界交于点(x,y),顶点A的坐标为(x0,y0),边AB斜率为KAB,边AC斜率为KAC,则y值的计算公式为:
然后将y值带入公式(1)即可计算出像素点u的最终灰度值。
纵坐标值最小顶点处的处理,与纵坐标值最大顶点处的处理相对称。
2.3.2 纵坐标非极值顶点
设通过该顶点的两条边斜率分别为K1、K2,当K1*K2<0且
如图5中所示,在进行了边PQ和边PR的反走样后,像素点f还未进行反走样,使三角形在整体视觉上存在缺点现象。因此,对于像素点f需要特殊处理,具体公式如下:
其中,I(f)、I(f′)为反走样处理前像素点f、f′的灰度值,I′(f)为反走样处理后像素点f的最终灰度值,KPQ为边PQ的斜率,(x1,y1)为顶点P的坐标,(x2,y2)为扫描线y=ymid+1与三角形理想边界PQ的交点坐标。
3实验结果分析
从图6中可以看到,本文算法绘制的三角形在边界及顶点处均获得了很好的反走样效果。此外在三角形平移和旋转情况下,也不存在位置和灰度等方面的明显跳变。
4结语
本文结合多边形扫描线填充算法,将Wu直线反走样算法的基本思想推广到三角形反走样中。同时提出了一种三角形顶点处反走样的处理方法,实现了对三角形绘制和反走样的全过程。本文算法绘制的三角形在边界及顶点处均获得了很好的反走样效果。在三角形平移和旋转情况下,也没有明显的跳变现象。本算法已被用于某电子飞行仪表模拟显示系统上,把该算法用硬件实现是下一步的研究目标。
摘要:结合多边形扫描线填充算法,将W u直线反走样算法的基本思想推广到三角形反走样中。同时提出了一种三角形顶点处反走样的处理方法,实现了对三角形绘制和反走样的全过程。最后,给出了算法实验结果分析及实际应用。
关键词:三角形,反走样,顶点,灰度,Wu
参考文献
[1]王建涛,吴官祥.基于矢量图形的反走样技术及其应用[J].测绘学院学报,2001(3):75-77.
[2]刘晓东,刘卫宁,蒋立华.对光线追踪引起物体边缘走样的研究[J].计算机应用研究,2002,19(4):83-84,113.
[3]璩柏青,文建明,李增忠.一种基于像素相关性的自适应反走样算法[J].电子科技,2004(3):50-52,55.
[4]江修,张焕春,经亚枝.三像素宽反走样直线的绘制算法研究[J].南京航空航天大学学报,2003,35(2):148-151.
[5]杨爱良,杨睿,熊智勇.反走样技术在计算机图形仿真中的运用[J].计算机仿真,2005,22(4):124-125,217.
灰度投影算法 第7篇
人作为视频应用的最终获得者,使得主观质量评价成为评价视频质量最准确的办法。但是根据ITU-T BT500-11[1]规定的方法进行主观质量评价,不仅要花费大量的人力和物力,而且无法嵌入到视频监控应用系统中。随着监控摄像机数量的增加和监控时间的延长,监控系统维护工作的难度逐步增加。监控网络线路老化、接头松动等现场环境的变化可能带来视频噪声。目前视频监控系统的维护工作多数是由人工完成的。但是由于监视屏数量有限和维护人员存在一定的不稳定性、随意性和局限性,使得人工检查结果不具有一定的客观性。因此客观智能化视频故障分析,对前端传回的视频图像进行质量分析判断,对视频故障做出准确判断并发出报警信息已经成为现阶段亟需解决的重要问题。
目前,根据参考视频的可用程度可将客观视频质量评价算法分为三类。第一类是全参考法,参考视频完全可用,将失真视频和参考视频进行比对,以与参考视频的接近程度来衡量失真视频的质量; 第二类是半参考法,仅仅知道参考视频的某些图像特性,将失真视频和参考视频中已知的图像特性进行对比,以这些特性的接近程度来衡量失真视频的质量; 第三种是无参考法,不需要参考视频,根据人类视觉特性直接对失真视频进行质量评价。在很多场合没有或无法获得参考视频的全部或部分信息,因此无参考视频质量评价方法更加实用。起初,研究者首先提出了一种基于误差统计方法如PSNR、MSE,这类方法在每个像素上统计失真视频与原始视频之间的误差,算法思路清晰,实现简单、快速,是现今应用比较广泛的方法。但是大量实验表明,基于像素误差的PSNR以及MSE评价结果在很多情况下并不能准确反映人的真实感受,结果与主观评价的相关性较差,并且在很多应用场合,没有或无法获得原始视频图像的全部或部分信息。为了解决这个问题,不少研究者投入对基于人类视觉系统HVS特征的客观质量评价方法进行研究。这类方法通过模拟人类视觉对错误的感知特征分析和量化错误信号。Wang等[2]提出了一种基于结构相似性的SSIM视频质量评价算法,其根据人类视觉系统对自然图像的结构敏感性这一原理。Lin[3]通过比较参考图像与待评价图像之间相位一致图像的结构相似度,提出的一种全参考质量评价方法( FSIM) ,Hassen等[4]则利用局部相位一致性的方法对图像进行评价。Li[5]提出的一种无参考图像质量评价方法是基于图像空域特征和相位一致特征学习,其表现出较好的性能。VSNR[6]利用小波进行图像分析,用两个阈值对人类视觉系统觉察到的自然图像的失真进行量化,然后求均值。由美国国家电信管理中心开发的VQM[7]评测的10种质量评价模型被广泛应用,但其并没有确定一个标准的视频质量评价模型。V-VIF[8]通过时间延伸的方法来度量失真视频的信息保真度,反映了视频在时间域上的失真程度。
本文不同于上述传统的视频质量评价算法,利用视频中相邻两帧间差异信息可反映出视频中的噪声,结合灰度共生矩阵的五特征信息融合的客观视频质量评价方法对视频噪声有效识别。灰度共生矩阵反映的是图像纹理信息,在一定程度上,视频中出现的噪声可当作具有特定的纹理信息特性,本文采用灰度共生矩阵对视频中出现的噪声有效识别。该方法首先对连续的两帧视频进行差分运算得到帧差图像,然后对帧差图像利用灰度共生矩阵计算图像信息熵、能量、逆差距、均值和、方差和五个特征,最后将五个特征信息利用支持向量机训练学习进行有效融合,对已知视频进行分类识别。
1 基于灰度共生矩阵的感知特征提取
灰度共生矩阵GLCM( Gray Level Co-occurrence Matrix) 是反映图像区域微观纹理的有力工具,是在图像的二阶组合条件概率密度的基础上建立的,通过计算图像中在指定距离和指定方向上的两像素点灰度之间的相关性,灰度共生矩阵描述了图像中在这两像素点灰度出现的概率: 从灰度为i的像素出发,统计与距离为d、方向为θ、灰度为j的像素出现的概率,是对灰度图像上保持某种距离的2个像素点位置的联合概率分布状况进行统计得到,它反映纹理图像中各灰度级在空间上的分布特性,是分析图像的局部模式及它们排列规则的基础。一幅M×N的灰度图像I的灰度共生矩阵:
其中,( Δt,Δs) 是偏移量,d是到像素( t,s) 的距离,θ为偏移方向。
灰度共生矩阵通过计算帧差图像中指定距离和方向的两像素点灰度之间的相关程度,来反映图像在间隔、方向、快慢和变化幅度上的综合信息,是像素角度和距离的矩阵。对于一幅大小M×N的图像I,像素的灰度级为{ 0,1,…,G - 1} ,则它的灰度共生矩阵就可表示为一个二维矩阵P( i,j,d,θ) ,每个矩阵元素就是指定距离d和角度θ的像素联合出现的概率。因此,根据d和θ值的不同,就会有多个不同的共生矩阵。在实际应用中,θ一般取等方向角度,而d则适当选取一个经验值。本文中d取值为1,方向θ分别为0°、45°、90°、135°,得出4个方向的灰度共生矩阵对应的特征值后,取其均值作为视频图像质量评价的指标。
Haralick等[9]曾经根据灰度共生矩阵提出了14个参数,作为图像纹理分析的特征量。虽然这14种参量能表达纹理的某些特定信息,但存在信息冗余等问题。从计算的简单性和性能上考虑,本文选取信息熵、能量、逆差距、均值和、方差和这五种参量作为图像质量度量的感知特征,具体讨论见实验部分。
1) 信息熵ENT( Entropy)
信息熵是图像所具有的信息量的度量,纹理信息属于图像的信息,若帧差图像中没有任何纹理信息,则其灰度共生矩阵几乎为零,那么熵值也接近为零。若灰度共生矩阵值分布均匀,即帧差图像近于随机分布或者其噪声很大,熵会有较大值。图1( a) 表示正常视频库和噪声视频库下信息熵取值。
2) 能量ENE( Energy)
能量是灰度共生矩阵元素值的平方和,也称角二阶矩,反映图像灰度分布均匀程度以及纹理粗细度。根据公式可知,若帧差图像的灰度共生矩阵所有值分布较均匀( 即图像中存在严重的噪声) ,则ENE值趋近与0; 相反,若灰度共生矩阵中的值集中在某一块( 具有结构化的图像,则值集中在偏离对角线的位置) ,则ENE值较大。图1( b) 表示正常视频库和噪声视频库下能量取值。
3) 逆差距HOM( Homogeneity)
逆差距表示灰度共生矩阵中元素的分布到对角线的紧密程度,也称同质性,是度量图像纹理局部变化的程度,反映了图像纹理的同质性。若图像纹理的不同区域间变化较小,则其值大,说明局部非常均匀。纹理信息属于图像的信息,若图像没有任何纹理,则灰度共生矩阵几乎为零,那么HOM值接近为零。图1( c) 表示正常视频库和噪声视频库下逆差距取值。
4) 均值和SOA( Sum of Average)
均值和是帧差图像区域内像素点平均灰度值的度量,反映图像整体色调的明暗深浅。图1( d) 表示正常视频库和噪声视频库下均值和取值。
5) 方差和SOV( Sum of Variance)
方差和是反映纹理变化频率、周期大小的物理量。值越大表明纹理频率越大,即纹理变化的越频繁。噪声在一定程度上可当作一种特殊的纹理,方差和的值随图像纹理的不同有较大变化,可作为评价噪声程度的一个指标。图1( e) 表示正常视频库和噪声视频库下方差和取值。
图1表示正常视频库和噪声视频库下信息熵、能量、逆差矩、均值和、方差和的变化,其中1 ~ 50为50个正常视频库中的正常视频,51 ~ 100为50个噪声视频库中的噪声视频。
从图1( a) 、( b) 、( c) 、( d) 、( e) 可以看出信息熵、能量、逆差距、均值和、方差和这五个特征有明显的划分。正常视频库的信息熵值与方差和明显低于噪声视频库对应的特征值,相反,正常视频库的能量值、逆差距以及均值和要高于噪声视频库中对应的特征指标。
2 基于支持向量机的视频图像特征融合分类模型
支持向量机是一种基于统计学习理论的机器学习方法,因其完善的理论构架和良好的实际应用效果,对解决小样本模式的分类问题有独特的优势,具有很强的泛化能力[10,11,12,13]。下面来介绍下SVM原理。
对于给定的样本集( xi,yi) ( i = 1,2,…,N; xi∈Rm; y∈{ - 1,1} 是类别标号) ,支持向量机首先将m维原始低维输入向量映射到n维的高维空间,其对应的非线性映射为Φ: Rm- >Rn。当数据在高维空间可分时,支持向量机便在高维空间Rn构造最优分类平面wΦ + b,w可以写成Φ的线性组合:
其中ai可通过求解下面的二次规划问题得到:
通过满足Mercer条件可知,内积( Φ( xi) Φ( xj) ) 在高维空间中可以在输入空间找到与其对应的核函数K( xi,xj) ,使得K( xi,xj) = ( Φ( xi) Φ( xj) ) ,故式( 8) 可以写为如下所示:
常用的核函数有[14]:
( 1) 多项式核函数: K( xi,x) = ( 1 + x×xi)r,r = 1,2,…,n;
( 2) 径向基函数核: K( xi,x) = exp( - g‖x - xi‖r) ;
( 3) 两层前馈神经网络核: K( xi,x) = tanh( ν( x×xi) - θ) 。
用SVM进行无参考视频图像质量进行分类时,重要的是要找到最能反映视频图像噪声的特征。为此本文利用灰度共生矩阵,提取信息熵、能量、逆差距、均值和、方差和5个特征作为SVM模型的输入来学习预测图像质量,并对其分类。结构如图2所示。
3 实验与结果
对于一幅灰度级数为256级的图像,级数太多会导致计算灰度共生矩阵大,计算量也就越大。为了解决这一问题,在求灰度共生矩阵之前,图像灰度级数常压缩为16级、8级等级数。在本文的实验中,由于对视频帧差图像计算灰度共生矩阵,考虑到噪声的像素特点,把灰度级数按照不均匀压缩方式压缩为9级,压缩参数为T =[0,3,10,15,20,30,40,50,60,90]。SVM模型中,核函数参数r和惩罚因子C对SVM分类准确率影响较大,在对特征进行分类的过程中,核函数参数会直接影响映射关系,反映样本数据在高维空间中分布的复杂程度; 惩罚参数可调节置信区间和经验风险比例,提高SVM的泛化能力。本文中,核函数采用径向基核函数,r和C采用网格寻优方法获取最优值。
对两组视频图像进行验证性实验,第一组视频是200个正常视频,第二组视频是150个噪声视频,部分视频库图片如图3所示。实验分别从两组视频中的第25帧开始,对连续的两帧视频进行差分运算,并对帧差图像处理后分别计算其四个方向的灰度共生矩阵,得到能量、熵、逆差距、均值和、方差和五个特征值,并取四个方向的平均值。
对于监控视频而言,需要正确识别出噪声视频,因此实验中的性能评价指标采用漏检率、误报率和识别率。漏检是指噪声视频被识别为正常视频; 误检是指正常视频被识别为噪声视频; 识别是指能正确分类所有视频。漏检率、误检率和识别率分别记为miss、err、rec,具体公式如下所示:
式中missV ideo表示漏检的噪声视频总数,err Video表示错误检测的正常视频总数,noise Video表示噪声视频总数,normal Vide表示正常视频总数。
首先在实验视频库上用信息熵、能量、逆差距、均值和和方差和五种中的1种特征进行训练和测试,用来说明这些特征的重要性程度。从表1中可看出,在分别使用1种特征的情况下,重要性由能量、均值和、信息熵、方差和、逆差距依次降低。然后选取2种特征组合,其性能如表2所示,即使只有2种特征的组合,已经可以达到较好的性能。从中可看出这些特征之间有的是互补关系,有的是内容重叠关系。14种参量中存在多种组合,在视频库上都可达到较好的质量评价效果,且其平均性能指标大体相当,因此综合考虑在其它数据库上的性能及计算的简单性,本文使用五种特征。表3为在视频库上采用5种特征性能指标。同时为了验证本文算法的优越性与推广性,几种视频质量评价的算法与本文算法分别进行了对比实验,其相应的漏检率、误报率和识别率如表4所示。
根据表4可以看出,从性能上讲,本文提出的算法能够获得较低的漏检率和误报率,提高了噪声视频检测的识别率,适合应用于安防监控系统。
4 结 语
本文提出于灰度共生矩阵五特征信息融合的客观视频质量评价方法。该方法首先对连续的两帧视频进行差分运算,然后对帧差图像利用灰度共生矩阵计算图像信息熵、能量、逆差距、均值和、方差和五个特征,最后用支持向量机进行信息融合训练学习,对无参考视频噪声有效识别。算法计算简单易于实现,复杂度低,可以充分应用于视频监控系统中的视频噪声检测技术。
摘要:针对视频监控图像中存在噪声的问题,利用视频中相邻两帧间差异信息可反映出视频中的噪声,结合灰度共生矩阵,提出基于灰度共生矩阵五特征信息融合的客观噪声视频识别评价方法。该方法首先对连续的两帧视频进行差分运算,然后对帧差图像利用灰度共生矩阵计算图像信息熵、能量、逆差距、均值和、方差和五个特征,最后用支持向量机进行信息融合训练学习,对无参考视频噪声有效识别。实验结果表明,该方法预测识别效果较好,识别率高达95.11%,与主观识别有较好的一致性,能获得较低的漏检率和误报率。
灰度投影算法范文
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。


