基于样条函数插值算法的图像放大方法

文档序号:6472247阅读:246来源:国知局
专利名称:基于样条函数插值算法的图像放大方法
技术领域
本发明涉及数字图象处理技术,具体涉及到样条函数插值算法。

背景技术
图像缩放是现代数字图像处理不可缺少的一部分,放大后的图像如何保证视觉效果是其技术关键。
常用的放大算法有最近邻插值、双线性插值、双三次插值算法等。
最近邻插值(nearestneighbor interpolation)是最简单的一种插值算法,以插值点周围4个相邻像素点中距离最近的1个相邻点像素值作为该插值点像素值,没有考虑其它相邻像素的影响,因此重新采样后的图像灰度值有明显的不连续性,像质损失较大,放大后的图像容易出现马赛克或锯齿现象; 双线性插值(bilinear interpolation)由于考虑了插值点周围四个相邻点对该插值点的影响,因此基本克服了最近邻插值灰度不连续的缺点,极大地消除了锯齿现象,但由于仅考虑四个相邻点的影响,而未考虑到各邻点间像素值变化率的影响,使放大后图像的高频分量受到损失,图像的轮廓变得较模糊; 双三次插值算法(Bicubic Interpolation)效果最好,不仅考虑到四个直接相邻点像素值的影响,还考虑到各邻点间像素值变化率的影响,立方卷积法利用了插值点周围更大邻域内像素的像素值作三次插值(4*4=16个像素点)。双三次插值算法保持了图像的连续光滑的效果,细节也有很大的增强,但是这样处理后的图像细节增强的同时也增强了锯齿,所以图像的边缘的锯齿现象比双线性插值要明显。
用最近邻法插值、双线性插值法、双三次插值算法或者别的样条曲线法插值法,考虑的都是距离系数,而距离系数没有将边界(高频)的情况考虑进去。


发明内容
本发明所要解决的技术问题是,提供一种在插值时既考虑距离因素的同时考虑了边缘因素的基于样条函数插值算法的图像放大方法。
本发明为解决上述技术问题所采用的技术方案是,基于样条函数插值算法的图像放大方法,其特征在于,包括以下步骤 a、查找确定插值点像素值的所需要的相邻点; b、计算相邻点的边缘变化值; c、对所有相邻点的权重系数引入其边缘变化值进行修正,相邻点的边缘变化值越大,该相邻点所占的权重越小; d、根据修正后的权重系数,计算插值点像素值。
本发明的有益效果是,本发明对相邻点的权重系数都进行修正,如果相邻点没有处于边界,则相邻点与插值点像素值相差很小,所以其权重系数不用太大的;如果相邻点处于边界,则相邻点与插值点像素值差异比较大,减少该相邻点所占权重,这样使得边缘变化大的相邻点与插值点的相关性大大减少以突出边界,避免了锯齿的出现和细节的过多损失。



图1为相邻点i周围8个像素点的位置示意图; 图2为双三次样条曲线函数行插值时插值点与相邻点的位置示意图。

具体实施例方式 本文的方法是先判断出相邻点的边缘变化值,由于硬件实现的限制,所以不能用计算量太大的方法。Soble算子可以保证边缘的判断及方向性,但计算量太大,无法在硬件上实现。本实施例采用减少乘法运算,尽量用加法运算,如图1所示,利用相邻点i周围8个像素点求得相邻点i的边缘变化值S(i) i+1为相邻点i邻近左上方点;i+2为相邻点i邻近正上方点;i+3为相邻点i邻近右上方点;i+4为相邻点i邻近正左方点;i+5为相邻点i邻近正右方点;i+6为相邻点i邻近左下方点;i+7为相邻点i邻近正下方点;i+3为相邻点i邻近右下方点。
S(i)=max{P(1),P(2),P(3),P(4)}; 其中,P(1)=|(p(i+1)+p(i+2)+p(i+4))-(p(i+5)+p(i+7)+p(i+8)|; P(2)=|(p(i+2)+p(i+3)+p(i+5))-(p(i+4)+p(i+6)+p(i+7)|; P(3)=|(p(i+1)+p(i+2)+p(i+3))-(p(i+6)+p(i+7)+p(i+8)|; P(4)=|(p(i+1)+p(i+4)+p(i+6))-(p(i+3)+p(i+5)+p(i+8)|。
依照上述方法可求得确定插值点像素值的所有相邻点的边缘变化值;现有的样条函数插值会降低边缘变化幅度,使边缘变模糊;要改善这种情况,就是对个相邻点像素值的权重系数进行修正,从而使得边缘变化值大的点与插值点相关性减少,保护了图像的细节。
下面以分段三次样条曲线函数为例来说明如何修正各相邻点的权值系数。由于图像像素是行、列排列整齐的二维离散点,所以在插值时,我们可以采用先行后列(或先列后行)分别在行方向、列方向上进行两次一维插值的方法来实现。
目前双三次样条曲线函数在进行行插值的处理函数为 F(x)=Fk-1(-x3+2x2-x)/2+Fk[3x3-5x2+2]/2+Fk+1[-3x3+4x2+x]/2+Fk+2(x3-x2)/2; 对列的处理为 F(y)=Fk-1(-y3+2y2-y)/2+Fk[3y3-5y2+2]/2+Fk+1[-3y3+4y2+y]/2+Fk+2(y3-y2)/2 假如设Fk-1为边界点(边缘变化值很大的相邻点),用传统曲线函数来定该点的权重系数为(-x3+2x2-x)/2;而Fk-1不是边界点,用传统曲线函数来定该点的权重系数也是(-x3+2x2-x)/2。也就是说边界点与非边界点处理方法相同,导致边界的过渡太多,边界变模糊。
本发明是对所有的相邻点的权重系数都进行修正,引入边缘变化值;如果相邻点不是边界点,其系数不用太大的变化,但如果是边界点,由于本发明已对该边界点的权重系数进行了修正,这样使得边界灰度变化大的点与要插值的点的相关性大大减少以突出边界。
引入边缘变化值的新插值函数为 行插值时,F(x)=Fk-1*A1+Fk*A2+Fk+1*A3+Fk+2*A4; 其中,A1为插值点左方最近相邻点像素值Fk的权重系数;A2为插值点左方第二近相邻点像素值Fk-1的权重系数;A3为插值点右方最近相邻点像素值Fk+1的权重系数;A4为插值点右方第二近相邻点像素值的权重系数Fk+2; 设M1=(-x3+xd2-x)/(1+Sk-12); M2=(3x3-5x2+2)/(1+Sk2); M3=(-3x3+4x2+x)/(1+Sk+12); M4=(x3-x2)/(1+Sk+22); 其中Sk-1、Sk、Sk+1、Sk+2分别为Fk-1、Fk、Fk+1、Fk+2处的边缘变化值;x为插值点与左方最近相邻点Fk的距离,如图2所示; 则,A1=M1/(M1+M2+M3+M4); A2=M2/(M1+M2+M3+M4); A3=M3/(M1+M2+M3+M4); A4=M4/(M1+M2+M3+M4); 同理,列插值时,F(y)=Fk-1*A1+Fk*A2+Fk+1*A3+Fk+2*A4;其中,A1为插值点上方最近相邻点像素值Fk的权重系数;A2为插值点上方第二近相邻点像素值Fk-1的权重系数;A3为插值点下方最近相邻点像素值Fk+1的权重系数;A4为插值点下方第二近相邻点像素值的权重系数Fk+2; A1=M1/(M1+M2+M3+M4); A2=M2/(M1+M2+M3+M4); A3=M3/(M1+M2+M3+M4); A4=M4/(M1+M2+M3+M4); M1=(-y3+yd2-y)/(1+Sk-12);M2=(3y3-5y2+2)/(1+Sk2);M3=(-3y3+4y2+y)/(1+Sk+12);M4=(y3-y2)/(1+Sk+22);y为插值点与上方最近相邻点Fk的距离; 由上式可看出,假如设Fk-1为边界点,则Sk-1很大,相应的A1很小,相邻点像素Fk-1由于其权重系数A1很小,所以对插值点像素的影响也很小,这样使得相邻点像素Fk-1得到突出,即使得图像的边界(细节)突出。
在对本发明的验证实验中,采用常规双三次插值与采用本发明的插值算法在同等放大倍数的仿真图形比较,可以明显看出,本方法相对比常规双三次插值算法,边缘清晰度明显提高。且本发明方法在具体实现中结构简单,相对常规算法,并未增加太多复杂度。
基于本发明思想,亦可实现于其它样条函数插值方法。实施例中所示的双三次插值仅作为举例参考。对于其它样条函数插值算法,通过对本发明的变化调整,亦可实现对边缘部位的优化。
权利要求
1.基于样条函数插值算法的图像放大方法,其特征在于,包括以下步骤
a、查找确定插值点像素值的所需要的相邻点;
b、计算相邻点的边缘变化值;
c、对所有相邻点的权重系数引入其边缘变化值进行修正,相邻点的边缘变化值越大,该相邻点所占的权重越小;
d、根据修正后的权重系数,计算插值点像素值。
2.如权利要求1所述基于样条函数插值算法的图像放大方法,其特征在于,步骤b中计算相邻点的边缘变化值由该相邻点周围8个像素点的像素值确定。
3.如权利要求2所述基于样条函数插值算法的图像放大方法,其特征在于,步骤b中计算相邻点的边缘变化值,具体为
S(i)=max{P(1),P(2),P(3),P(4)},其中S(i)为相邻点i的边缘变化值;
P(1)=|(p(i+1)+p(i+2)+p(i+4))-(p(i+5)+p(i+7)+p(i+8)|;
P(2)=|(p(i+2)+p(i+3)+p(i+5))-(p(i+4)+p(i+6)+p(i+7)|;
P(3)=|(p(i+1)+p(i+2)+p(i+3))-(p(i+6)+p(i+7)+p(i+8)|;
P(4)=|(p(i+1)+p(i+4)+p(i+6))-(p(i+3)+p(i+5)+p(i+8)|;
p(i+1)为相邻点i邻近左上方点的像素值;p(i+2)为相邻点i邻近正上方点的像素值;
p(i+3)为相邻点i邻近右上方点的像素值;p(i+4)为相邻点i邻近正左方点的像素值;
p(i+5)为相邻点i邻近正右方点的像素值;p(i+6)为相邻点i邻近左下方点的像素值;
p(i+7)为相邻点i邻近正下方点的像素值;p(i+3)为相邻点i邻近右下方点的像素值。
4.如权利要求1、2或3所述基于样条函数插值算法的图像放大方法,其特征在于,采用三次样条插值,步骤a所述相邻点个数为16;
步骤c中,相邻点的权重系数为
A1=M1/(M1+M2+M3+M4);
A2=M2/(M1+M2+M3+M4);
A3=M3/(M1+M2+M3+M4);
A4=M4/(M1+M2+M3+M4);
其中,行/列插值时,A1为插值点左方/上方第二近相邻点的权重系数;A2为插值点左方/上方最近相邻点的权重系数;A3为插值点右方/下方最近相邻点的权重系数;A4为插值点右方/下方第二近相邻点的权重系数;
M1=(-d3+2d2-d)/(1+Sk-12);
M2=(3d3-5d2+2)/(1+Sk2);
M3=(-3d3+4d2+d)/(1+Sk+12);
M4=(d3-d2)/(1+Sk+22);
其中,d为插值点与左方/上方最近相邻点的距离;Sk-1、Sk、Sk+1、Sk+2分别为左方/上方最近相邻点Fk-1、插值点左方/上方第二近相邻点Fk、插值点右方/下方最近相邻点Fk+1、插值点右方/下方第二近相邻点Fk+2处的边缘变化值;S1、S2、S3、S4分别为Fk-1、Fk、Fk+1、Fk+2处的边缘变化值;
步骤d中,对行进行插值时,插值点像素值为F(y)=Fk-1*A1+FkA2+Fk+1*A3+Fk+2*A4;
对列进行插值时,插值点像素值为F(x)=Fk-1*A1+Fk*A2+Fk+1*A3+Fk+2*A4。
全文摘要
本发明涉及数字图象处理技术。本发明提供一种在插值时既考虑距离因素的同时考虑了边缘因素的基于样条函数插值算法的图像放大方法。本发明包括以下步骤a.查找确定插值点像素值的所需要的相邻点;b.计算相邻点的边缘变化值;c.对所有相邻点的权重系数引入其边缘变化值进行修正,相邻点的边缘变化值越大,该相邻点所占的权重越小;d.根据修正后的权重系数,计算插值点像素值。本发明用于图像缩放,能缩放过程中锯齿的出现和细节的过多损失。
文档编号G06T3/40GK101216935SQ20081030013
公开日2008年7月9日 申请日期2008年1月17日 优先权日2008年1月17日
发明者勃 赵 申请人:四川虹微技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1