基于双二次b样条局部插值的图像缩放方法

文档序号:6601394阅读:649来源:国知局
专利名称:基于双二次b样条局部插值的图像缩放方法
技术领域
本发明涉及计算机图像处理及图像缩放领域,特别是涉及一种基于双二次B样条局部插值的图像缩放方法。
背景技术
图像缩放就是改变图像的分辨率,包括从低分辨率到高分辨率的图像放大以及从 高分辨率到低分辨率的图像缩小,其核心问题是如何根据源图像的像素颜色分布以及图像 的各种特征,重构出新分辨率下目标图像的像素颜色值。因此,图像缩放也可以理解为图像 重建中的重采样。图像缩放算法众多,最常见的是基于核函数的插值算法,包括零阶插值、线性插值 以及各种改进的三次插值函数,而二次插值函数却很少被人提起。根据Schafer和Rabiner 的观点(参见Thomas Μ. Lehmann, ClaudiaGonner,Klaus Spitzer. Survey Interpolation Methods in Medical ImageProcessing[J]. IEEE Transactions on Medical Imaging, 1999,18(11) :1049-1075),如果在插值过程中采用的采样点是奇数,即插值函数的次数为 偶数,如基于三个采样点的二次插值函数、基于五个采样点的四次插值函数等,都会造成线 性失真而不适合用来进行图像插值;而基于偶数个采样点的奇数次插值函数如三次插值、 五次插值,都不会带来线性失真的结果,因而也适合应用于图像插值领域。该理论分析认 为二次插值主要有如下问题一是插值三个采样点的二次插值函数不是一个线性移不变系 统,用于图像缩放会带来图像失真,造成不好的视觉效果;二是二次函数在插值的过程中只 采用了三个采样点,会造成有两个采样点位于当前所求点一侧、一个采样点位于另一侧的 不对称情况。相比之下,线性插值算法中所求点左右两侧各有一个采样点,而三次插值算法 中所求点左右两侧各有两个采样点,都是对称分布的。早期广泛使用的零阶插值和双线性插值算法,具有简单高效的特点,但会产生明 显的锯齿或者边缘模糊现象;三次插值在一定程度上改善了低阶插值的边缘模糊的缺点, 但计算量较大,降低了计算效率。

发明内容
本发明提供了一种基于双二次B样条局部插值的图像缩放方法,在获得类似于双 三次插值算法效果的同时大大提高了计算效率。一种基于双二次B样条局部插值的图像缩放方法,包括如下步骤(1)将分辨率为MXN的源图像由RGB颜色空间转换到YUV颜色空间,YUV空间中 的Y代表图像的亮度信息,U、V表示色度信息。由于人眼对亮度信息的敏感性远大于对色 度信息的敏感性,则在处理彩色图像时,只需对Y分量采用比较复杂的算法,而U、V分量之 间采用比较简单的算法,这样可以提高整个图像的处理速度和效率;(2)将转换到YUV颜色空间后的源图像放大,得到分辨率为nMXnN的目标图像,η 表示源图像需要放大的倍数,以ηΧη的像素组合矩阵作为一个处理单元遍历此目标图像,对每个处理单元执行以下三个操作,直至得到缩放后的图像的Y分量亮度值a.将该处理单元向前映射到源图像中,生成一个映射点;b.在源图像中取该映射点周围4X4像素的矩阵区域作为一个采样点空间,使映射点成为此采样点空间四阶矩阵的第2行第2列元素,用一个双二次B样条函数对这个采 样点空间内的16个像素的Y分量亮度值进行插值,得到这个双二次B样条函数的控制顶点 矩阵矩阵P ; C.将采样点空间放大η倍得到4η X 4η的重采样空间,将由操作b得到的控制顶点 矩阵P运用到重采样空间得到4nX4n矩阵,并将该4nX4n矩阵中第n+1行至第2η行、第 η+1列至第2η列共η2个元素赋值给当前处理单元的相应像素,作为这些像素的Y分量亮度 值;(3)对经过步骤(2)处理完成之后得到的目标图像的U、V分量进行双线性插值运 算,得到缩放后的图像的u、v分量亮度值;(4)根据缩放后的图像的Y、U和V分量,将缩放后的图像转换到RGB颜色空间。所述的步骤(1)中由RGB颜色空间转换到YUV颜色空间的转换方法如下 '7 = 0.299xi + 0.587xG + 0.114x5<formula>formula see original document page 5</formula>式中R、G、B分别表示像素的红、绿、蓝颜色值,Y是像素的亮度通道值,U和V是像 素的两个彩色通道值,表示色差。所述的步骤(2)的操作b中的插值过程如下对于该采样点空间内的16个待插值的像素点,用(X。,yd)表示采样点(c,d)的位 置坐标,其中1 < c < 4,1 < d < 4,D为该采样点空间的亮度值矩阵,它是一个四阶矩阵, 每个元素对应相应位置像素点的亮度值<formula>formula see original document page 5</formula>对这16个元素插值,即是要找到一个双二次B样条函数S(u,ν)使得 ^c,yj = ΣΙΣμ^ΛΛ^,Μ = d^是双二次B样条函数的控制顶点矩阵,U、ν是 双二次B样条函数的两个参数轴,有效区间为2彡u彡4,2彡ν彡4,Nu、Nv分别为两个参 数轴上的样条基函数,将像素点的位置坐标(x。,yd)参数化至u、v参数轴的有效区间上,形 成此有效区间上的均勻分割,即取X1 = 2, X2 = 8/3,X3 = 10/3,X4 = 4 ;Υι = 2,y2 = 8/3, Y3 = 10/3, y4 = 4,计算控制顶点矩阵P = iV。(AO_1其中
<formula>formula see original document page 5</formula><formula>formula see original document page 6</formula>
由此得到一个双二次B样条函数S (u,ν) = NuP (Nv)τ,以实现对每一个采样点的插值。所述的步骤⑵操作c中,对于重采样空间,用(^,yf)表示新的像素(e,f)位置 坐标,其中1 < e < 4n,1 < f < 4η,将此位置坐标参数化至u、ν参数轴上,形成有效区间
上的均勻分割,取& = 2 + ψ^ ,Xf =2 + ψ^-,计算方程S\u,v) == KP(Kf其中P为所求的控制顶点矩阵,N’ U、N’ ν是此分割下的样条基函数<formula>formula see original document page 6</formula>.
<formula>formula see original document page 6</formula>
由此得到一个4nX4n矩阵S,4nX4n,并将此矩阵第n+1行至第2η行、第η+1列至第 2η列共η2个元素赋值给目标图像中的当前处理单元的相应像素,作为这些像素的Y分量亮度值。所述的步骤(3)中双线性插值运算过程为用f(x,y)表示源图像(5)中某个像素(x,y)的U、V分量值,1≤χ≤M,1≤y≤N, 用T(s,t)表示目标图像(6)中像素(s,t)的U、V分量值,1≤s≤nM,l≤t≤nN,n为放 大倍数,记 si = int(s/n),s2 = s/n-sl,tl = int (t/n),t2 = t/n-tl,int 为取整函数, 则目标图像(6)U、V分量值与源图像(5) U、V分量值的对应关系式为<formula>formula see original document page 6</formula>
所述的步骤(4)中由YUV颜色空间转换到RGB颜色空间的转换方法如下 'i = 7 + 1.14xF<formula>formula see original document page 7</formula>
本发明提出了一种基于双二次B样条局部插值的图像缩放方法,采用了四个采样 点以区别于传统的二次插值函数,具有良好的局部性,易于并行实现,可以在GPU进行加 速,从而能够获得类似于双三次插值算法的效果,同时提高了效率。


图1为采用本发明图像缩放方法对图像放大两倍时的算法示意图;图2为本发明图像缩放方法的流程图。
具体实施例方式参见图1、2,本发明基于双二次B样条局部插值的图像缩放方法,以放大两倍为 例,包括以下步骤(1)将像素分辨率为5X5的源图像5由RGB颜色空间转换到YUV颜色空间,转换 方法如下
'7 = 0.299*i + 0.587*G + 0.114*5· {/ = 0.492* (5-7)
V = 0.877(R-F)式中R、G、B分别表示像素的红、绿、蓝颜色值,Y是像素的亮度通道值,U和V是像 素的两个彩色通道值,表示色差;(2)将源图像5映射到分辨率为IOX 10的目标图像6,以2X2的像素组合矩阵作 为一个处理单元1将此目标图像6分成25个处理单元,对每个处理单元1执行以下三个操 作a.将该处理单元1向前映射到源图像5中,生成一个映射点2 ;b.在源图像5中取该映射点2周围4X4的矩阵区域作为一个采样点空间3,使映 射点2成为此采样点空间3四阶矩阵的第二行第二列元素,用一个双二次B样条函数S (u, ν)对这个采样点空间3内的16个采样点进行插值。插值过程如下对于该采样点空间(3)内的16个待插值的像素点,用(X。,yd)表示采样点(c,d) 的位置坐标,其中1彡c彡4,1彡d彡4,D为该采样点空间(3)的亮度值矩阵,它是一个四 阶矩阵,每个元素对应相应位置像素点的亮度值
<formula>formula see original document page 7</formula>对这16个元素插值,即是要找到一个双二次B样条函数S(u,ν)使得 S{xc,yd) = Σ二 Σ二 CmW)^, 4(h) = D,P是双二次B样条函数的控制顶点矩阵,u、v是双二次B样条函数的两个参数轴,有效区间为2彡u彡4,2彡ν彡4,Nu、Nv分别为两个参 数轴上的样条基函数,将像素点的位置坐标(x。,yd)参数化至u、v参数轴的有效区间上,形 成此有效区间上的均勻分割,即取X1 = 2, X2 = 8/3,X3 = 10/3,X4 = 4 ;Υι = 2,y2 = 8/3, Y3 = 10/3,y4 = 4,计算控制顶点矩阵i^iV^iXAO—1
其中
<formula>formula see original document page 8</formula>由此得到一个双二次B样条函数S (u,ν) = NuP (Nv)τ,以实现对每一个采样点的插值。c.将完成插值后的采样点空间放大2倍得到8X8的重采样空间4,将由操作b得 到的控制顶点矩阵P运用到重采样空间4,对于这个重采样空间4,用(xe,yf)表示新的像素 (e,f)位置坐标,其中1 < e < 8,1 < f < 8,将此位置坐标参数化至U、ν参数轴上,形成有
效区间上的均勻分割,取<formula>formula see original document page 8</formula>,计算方程s'(u,V)==KnKf其中矩阵P所求的控制顶点矩阵,N’ U、N’ ν是此分割下的样条基函数
<formula>formula see original document page 8</formula><formula>formula see original document page 9</formula>如图1所示,将4X4的采样点空间3放大至8X8的重采样空间S’8X8后,经观察 可发现S’ 8X8中用到的仅仅是左上角4X4的部分,所以在计算中为了减少计算量,可以只 计算这一部分,即对于8X4的矩阵N’ u和N’ v,只需取其上半部4X4的部分即可,则有
<formula>formula see original document page 9</formula>
由此得到一个8X8矩阵S’ 8Χ8,并将此矩阵第3行至第4行、第3列至第4列共4 个元素赋值给目标图像中的当前处理单元1的相应像素,作为这些像素的Y分量亮度值。(3)对经过步骤(2)处理完成之后得到的目标图像的U、V分量进行双线性插值运 算,得到新图像,双线性插值运算过程为用f(x,y)表示源图像(5)中某个像素(x,y)的U、V分量值,1≤χ≤M,1≤y≤N, 用T(s,t)表示目标图像(6)中像素(s,t)的U、V分量值,1≤s≤彡nM,l≤t≤nN,n为放 大倍数,记<formula>formula see original document page 9</formula>,int 为取整函数, 则目标图像(6)U、V分量值与源图像(5) U、V分量值的对应关系式为
<formula>formula see original document page 9</formula>(4)将新图像由YUV颜色空间转换到RGB颜色空间,得到最终的图像处理结果,转 换方法如下<formula>formula see original document page 9</formula>式中R、G、B分别表示像素的红、绿、蓝颜色值,Y是像素的亮度通道值,U和V是像 素的两个彩色通道值,表示色差。
权利要求
一种基于双二次B样条局部插值的图像缩放方法,该方法包括以下步骤(1)将分辨率为M×N的源图像(5)由RGB颜色空间转换到YUV颜色空间;(2)将转换到YUV颜色空间后的源图像(5)放大,得到分辨率为nM×nN的目标图像(6),n表示源图像需要放大的倍数,以n×n的像素组合矩阵作为一个处理单元(1)遍历此目标图像(6),对每个处理单元(1)执行以下三个操作,直至得到缩放后的图像的Y分量亮度值a.将该处理单元(1)向前映射到源图像(5)中,生成一个映射点(2);b.在源图像(5)中取该映射点(2)周围4×4像素的矩阵区域作为一个采样点空间(3),使映射点(2)成为此采样点空间(3)四阶矩阵的第2行第2列元素,用一个双二次B样条函数对这个采样点空间(3)内的16个像素的Y分量亮度值进行插值,得到这个双二次B样条函数的控制顶点矩阵P;c.将采样点空间(3)放大n倍得到4n ×4n的重采样空间(4),将由操作b得到的控制顶点矩阵P运用到重采样空间(4)得到4n×4n矩阵,并将该4n ×4n矩阵中第n+1行至第2n行、第n+1列至第2n列共n2个元素赋值给当前处理单元(1)的相应像素,作为这些像素的Y分量亮度值;(3)对经过步骤(2)处理完成之后得到的目标图像(6)的U、V分量进行双线性插值运算,得到缩放后的图像的U、V分量;(4)根据缩放后的图像的Y、U和V分量,将缩放后的图像转换到RGB颜色空间。
2.根据权利要求1所述的图像缩放方法,其特征在于步骤(2)中用双二次B样条函 数S(u,v) =NUP(NV)T对采样点空间(3)内的16个像素的Y分量亮度值进行插值,所述的 双二次B样条函数中P是双二次B样条函数的控制顶点矩阵;u、v是双二次B样条函数的两个参数轴;Nu、Nv分别为双二次B样条函数的两个参数轴上的样条基函数。
3.根据权利要求2所述的图像缩放方法,其特征在于所述的双二次B样条函数的控 制顶点矩阵?二^^广工,其中口为采样点空间(3)的亮度值矩阵。
4.根据权利要求3所述的图像缩放方法,其特征在于所述的 <formula>formula see original document page 2</formula>
5.根据权利要求4所述的图像缩放方法,其特征在于步骤(2)中所述的4nX4n矩阵为S,(u,v) =NU,P(NV,)T,其中<formula>formula see original document page 3</formula>
6.根据权利要求5所述的图像缩放方法,其特征在于步骤(3)中缩放后的图 像的 u、V 分量亮度值 T(s,t) = (1-S2) (l-t2) f(sl, tl) + (l-s2) t2 f(sl, tl+l)+s2 (l-t2) f(sl+1, tl)+s2 t2 f(sl+1, tl+1); 其中s、t为缩放后的图像中的像素坐标; si = int (s/n); s2 = s/n-sl ; tl = int (t/n); t2 = t/n-tl ;f(x,y)表示源图像(5)中某个像素的U、V分量值,其中x、y为该像素在源图像(5)中 的坐标;n为放大倍数。
全文摘要
本发明公开了一种基于双二次B样条局部插值的图像缩放算法。算法核心是采用一个双二次B样条函数对源图像局部4×4区域的16个像素进行插值描述,并通过对该函数进行重采样来实现图像的缩放。本算法避免了传统的二次插值算法带来的相位失真的问题,在视觉效果上也能达到与双三次算法近似的效果。由于该算法是一个局部性算法,每一个处理单元以及所利用的像素资源之间是相互独立的,其处理过程具有很好的并行性,可以在GPU中对该算法进行加速,从而在保证双三次算法效果的基础上提高了算法的效率,满足了图像处理的实时要求。
文档编号G06T3/40GK101807291SQ20101015801
公开日2010年8月18日 申请日期2010年4月27日 优先权日2010年4月27日
发明者冯结青, 夏海宏 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1