法律状态公告日
法律状态信息
法律状态
2016-10-12
专利权的转移 IPC(主分类):G06T3/40 登记生效日:20160922 变更前: 变更后: 申请日:20100427
专利申请权、专利权的转移
2011-11-09
授权
授权
2011-02-16
著录事项变更 IPC(主分类):G06T3/40 变更前: 变更后: 申请日:20100427
著录事项变更
2010-10-06
实质审查的生效 IPC(主分类):G06T3/40 申请日:20100427
实质审查的生效
2010-08-18
公开
公开
技术领域
本发明涉及计算机图像处理及图像缩放领域,特别是涉及一种基于双二次B样条局部插值的图像缩放方法。
背景技术
图像缩放就是改变图像的分辨率,包括从低分辨率到高分辨率的图像放大以及从高分辨率到低分辨率的图像缩小,其核心问题是如何根据源图像的像素颜色分布以及图像的各种特征,重构出新分辨率下目标图像的像素颜色值。因此,图像缩放也可以理解为图像重建中的重采样。
图像缩放算法众多,最常见的是基于核函数的插值算法,包括零阶插值、线性插值以及各种改进的三次插值函数,而二次插值函数却很少被人提起。根据Schafer和Rabiner的观点(参见Thomas M.Lehmann,ClaudiaKlaus Spitzer.Survey:Interpolation Methods in Medical ImageProcessing[J].IEEE Transactions on Medical Imaging,1999,18(11):1049-1075),如果在插值过程中采用的采样点是奇数,即插值函数的次数为偶数,如基于三个采样点的二次插值函数、基于五个采样点的四次插值函数等,都会造成线性失真而不适合用来进行图像插值;而基于偶数个采样点的奇数次插值函数如三次插值、五次插值,都不会带来线性失真的结果,因而也适合应用于图像插值领域。该理论分析认为二次插值主要有如下问题:一是插值三个采样点的二次插值函数不是一个线性移不变系统,用于图像缩放会带来图像失真,造成不好的视觉效果;二是二次函数在插值的过程中只采用了三个采样点,会造成有两个采样点位于当前所求点一侧、一个采样点位于另一侧的不对称情况。相比之下,线性插值算法中所求点左右两侧各有一个采样点,而三次插值算法中所求点左右两侧各有两个采样点,都是对称分布的。
早期广泛使用的零阶插值和双线性插值算法,具有简单高效的特点,但会产生明显的锯齿或者边缘模糊现象;三次插值在一定程度上改善了低阶插值的边缘模糊的缺点,但计算量较大,降低了计算效率。
发明内容
本发明提供了一种基于双二次B样条局部插值的图像缩放方法,在获得类似于双三次插值算法效果的同时大大提高了计算效率。
一种基于双二次B样条局部插值的图像缩放方法,包括如下步骤:
(1)将分辨率为M×N的源图像由RGB颜色空间转换到YUV颜色空间,YUV空间中的Y代表图像的亮度信息,U、V表示色度信息。由于人眼对亮度信息的敏感性远大于对色度信息的敏感性,则在处理彩色图像时,只需对Y分量采用比较复杂的算法,而U、V分量之间采用比较简单的算法,这样可以提高整个图像的处理速度和效率;
(2)将转换到YUV颜色空间后的源图像放大,得到分辨率为nM×nN的目标图像,n表示源图像需要放大的倍数,以n×n的像素组合矩阵作为一个处理单元遍历此目标图像,对每个处理单元执行以下三个操作,直至得到缩放后的图像的Y分量亮度值:
a.将该处理单元向前映射到源图像中,生成一个映射点;
b.在源图像中取该映射点周围4×4像素的矩阵区域作为一个采样点空间,使映射点成为此采样点空间四阶矩阵的第2行第2列元素,用一个双二次B样条函数对这个采样点空间内的16个像素的Y分量亮度值进行插值,得到这个双二次B样条函数的控制顶点矩阵矩阵P;
c.将采样点空间放大n倍得到4n×4n的重采样空间,将由操作b得到的控制顶点矩阵P运用到重采样空间得到4n×4n矩阵,并将该4n×4n矩阵中第n+1行至第2n行、第n+1列至第2n列共n2个元素赋值给当前处理单元的相应像素,作为这些像素的Y分量亮度值;
(3)对经过步骤(2)处理完成之后得到的目标图像的U、V分量进行双线性插值运算,得到缩放后的图像的U、V分量亮度值;
(4)根据缩放后的图像的Y、U和V分量,将缩放后的图像转换到RGB颜色空间。
所述的步骤(1)中由RGB颜色空间转换到YUV颜色空间的转换方法如下:
式中R、G、B分别表示像素的红、绿、蓝颜色值,Y是像素的亮度通道值,U和V是像素的两个彩色通道值,表示色差。
所述的步骤(2)的操作b中的插值过程如下:
对于该采样点空间内的16个待插值的像素点,用(xc,yd)表示采样点(c,d)的位置坐标,其中1≤c≤4,1≤d≤4,D为该采样点空间的亮度值矩阵,它是一个四阶矩阵,每个元素对应相应位置像素点的亮度值:
对这16个元素插值,即是要找到一个双二次B样条函数S(u,v)使得P是双二次B样条函数的控制顶点矩阵,u、v是双二次B样条函数的两个参数轴,有效区间为2≤u≤4,2≤v≤4,Nu、Nv分别为两个参数轴上的样条基函数,将像素点的位置坐标(xc,yd)参数化至u、v参数轴的有效区间上,形成此有效区间上的均匀分割,即取x1=2,x2=8/3,x3=10/3,x4=4;y1=2,y2=8/3,y3=10/3,y4=4,计算控制顶点矩阵
其中
由此得到一个双二次B样条函数S(u,v)=NuP(Nv)T,以实现对每一个采样点的插值。
所述的步骤(2)操作c中,对于重采样空间,用(xe,yf)表示新的像素(e,f)位置坐标,其中1≤e≤4n,1≤f≤4n,将此位置坐标参数化至u、v参数轴上,形成有效区间上的均匀分割,取计算方程:
其中P为所求的控制顶点矩阵,N’u、N’v是此分割下的样条基函数:
由此得到一个4n×4n矩阵S’4n×4n,并将此矩阵第n+1行至第2n行、第n+1列至第2n列共n2个元素赋值给目标图像中的当前处理单元的相应像素,作为这些像素的Y分量亮度值。
所述的步骤(3)中双线性插值运算过程为:
用f(x,y)表示源图像(5)中某个像素(x,y)的U、V分量值,1≤x≤M,1≤y≤N,用T(s,t)表示目标图像(6)中像素(s,t)的U、V分量值,1≤s≤nM,1≤t≤nN,n为放大倍数,记s1=int(s/n),s2=s/n-s1,t1=int(t/n),t2=t/n-t1,int为取整函数,则目标图像(6)U、V分量值与源图像(5)U、V分量值的对应关系式为:
T(s,t)=(1-s2)·(1-t2)·f(s1,t1)+(1-s2)·t2·f(s1,t1+1)+s2·(1-t2)·f(s1+1,t1)+s2·t2·f(s1+1,t1+1)。
所述的步骤(4)中由YUV颜色空间转换到RGB颜色空间的转换方法如下:
本发明提出了一种基于双二次B样条局部插值的图像缩放方法,采用了四个采样点以区别于传统的二次插值函数,具有良好的局部性,易于并行实现,可以在GPU进行加速,从而能够获得类似于双三次插值算法的效果,同时提高了效率。
附图说明
图1为采用本发明图像缩放方法对图像放大两倍时的算法示意图;
图2为本发明图像缩放方法的流程图。
具体实施方式
参见图1、2,本发明基于双二次B样条局部插值的图像缩放方法,以放大两倍为例,包括以下步骤:
(1)将像素分辨率为5×5的源图像5由RGB颜色空间转换到YUV颜色空间,转换方法如下:
式中R、G、B分别表示像素的红、绿、蓝颜色值,Y是像素的亮度通道值,U和V是像素的两个彩色通道值,表示色差;
(2)将源图像5映射到分辨率为10×10的目标图像6,以2×2的像素组合矩阵作为一个处理单元1将此目标图像6分成25个处理单元,对每个处理单元1执行以下三个操作:
a.将该处理单元1向前映射到源图像5中,生成一个映射点2;
b.在源图像5中取该映射点2周围4×4的矩阵区域作为一个采样点空间3,使映射点2成为此采样点空间3四阶矩阵的第二行第二列元素,用一个双二次B样条函数S(u,v)对这个采样点空间3内的16个采样点进行插值。插值过程如下:
对于该采样点空间(3)内的16个待插值的像素点,用(xc,yd)表示采样点(c,d)的位置坐标,其中1≤c≤4,1≤d≤4,D为该采样点空间(3)的亮度值矩阵,它是一个四阶矩阵,每个元素对应相应位置像素点的亮度值:
对这16个元素插值,即是要找到一个双二次B样条函数S(u,v)使得P是双二次B样条函数的控制顶点矩阵,u、v是双二次B样条函数的两个参数轴,有效区间为2≤u≤4,2≤v≤4,Nu、Nv分别为两个参数轴上的样条基函数,将像素点的位置坐标(xc,yd)参数化至u、v参数轴的有效区间上,形成此有效区间上的均匀分割,即取x1=2,x2=8/3,x3=10/3,x4=4;y1=2,y2=8/3,y3=10/3,y4=4,计算控制顶点矩阵
其中
由此得到一个双二次B样条函数S(u,v)=NuP(Nv)T,以实现对每一个采样点的插值。
c.将完成插值后的采样点空间放大2倍得到8×8的重采样空间4,将由操作b得到的控制顶点矩阵P运用到重采样空间4,对于这个重采样空间4,用(xe,yf)表示新的像素(e,f)位置坐标,其中1≤e≤8,1≤f≤8,将此位置坐标参数化至u、v参数轴上,形成有效区间上的均匀分割,取计算方程:
其中矩阵P所求的控制顶点矩阵,N’u、N’v是此分割下的样条基函数:
如图1所示,将4×4的采样点空间3放大至8×8的重采样空间S’8×8后,经观察可发现S’8×8中用到的仅仅是左上角4×4的部分,所以在计算中为了减少计算量,可以只计算这一部分,即对于8×4的矩阵N’u和N’v,只需取其上半部4×4的部分即可,则有:
由此得到一个8×8矩阵S’8×8,并将此矩阵第3行至第4行、第3列至第4列共4个元素赋值给目标图像中的当前处理单元1的相应像素,作为这些像素的Y分量亮度值。
(3)对经过步骤(2)处理完成之后得到的目标图像的U、V分量进行双线性插值运算,得到新图像,双线性插值运算过程为:
用f(x,y)表示源图像(5)中某个像素(x,y)的U、V分量值,1≤x≤M,1≤y≤N,用T(s,t)表示目标图像(6)中像素(s,t)的U、V分量值,1≤s≤nM,1≤t≤nN,n为放大倍数,记s1=int(s/n),s2=s/n-s1,t1=int(t/n),t2=t/n-t1,int为取整函数,则目标图像(6)U、V分量值与源图像(5)U、V分量值的对应关系式为:
T(s,t)=(1-s2)·(1-t2)·f(s1,t1)+(1-s2)·t2·f(s1,t1+1)+s2·(1-t2)·f(s1+1,t1)+s2·t2·f(s1+1,t1+1);
(4)将新图像由YUV颜色空间转换到RGB颜色空间,得到最终的图像处理结果,转换方法如下:
式中R、G、B分别表示像素的红、绿、蓝颜色值,Y是像素的亮度通道值,U和V是像素的两个彩色通道值,表示色差。
机译: 具有局部选择的插值功能,可以完成图像缩放的方法和设备
机译: 基于局部插值的基于导管的神经塑形的方法和装置
机译: 基于局部插值的基于导管的神经塑形的方法和装置