具体实施方式
请参阅图1,其为本发明一个方面的在图像处理***中基于矩阵对图像进行插值的方法的流程图。
首先,在步骤S1中,图像处理***获取包含插值点的像素点阵列的各像素点的像素值,例如,所述图像处理***可以获取一4*4像素点阵列的16个像素点的像素值,如图2所示,所述图像处理***获取包含插值点P的4*4像素点阵列中的像素点d11、d12、d13、d14、d21、d22、d23、d24、d31、d32、d33、d34、d41、d42、d43、及d44的像素值。
本领域技术人员应该理解,图像处理***获取像素点阵列并非以所示为限,事实上,其也可以获取5*5、8*8的像素点阵列等等。
接着,在步骤S2中,图像处理***确定包含插值点的像素点阵列所构成的图像区域的梯度方向。例如,所述图像处理***确定包含插值点P的像素点d11、d12、d13、d14、d21、d22、d23、d24、d31、d32、d33、d34、d41、d42、d43、及d44构成的图像区域的梯度方向,例如,为像素点d11、d22、d33与d44形成的对角线的方向;再例如,为像素点d14、d23、d32与d41形成的对角线方向等。
接着,在步骤S3中,图像处理***基于所述梯度方向、及所述插值点的位置,在与所述像素点阵列所构成的图像区域中确定待插值的三角形。例如,所述梯度方向为像素点d11、d22、d33与d44形成的对角线的方向,则图像处理***根据所述插值点P的位置,例如,插值点P处于像素点d32、d22与d33构成的三角形中,确定像素点d32、d22与d33构成的三角形作为待插值的三角形。再例如,如果所述梯度方向为像素点d14、d23、d32与d41形成的对角线方向,则图像处理***根据所述插值点P的位置,例如,插值点P处于像素点d22、d23与d32构成的三角形中,选择像素点d22、d23与d32构成的三角形作为待插值的三角形。
最后,在步骤S4中,图像处理***基于所确定的待插值三角形的三个顶点所对应的像素点的像素值及插值点距离所述三角形中一个顶点的距离,计算所述插值点的像素值。例如,图像处理***确定d22、d23与d32构成的三角形作为待插值的三角形,则图像处理***根据插值点P与像素点d22的距离计算插值点P的像素值。不过,本领域技术人员应该理解,图像处理***也可基于插值点P与像素点d23或者d32之间的距离来计算插值点P的像素值。
图3示出了本发明另一个方面的在图像处理***中基于矩阵对图像进行插值的方法的流程图。
具体的,步骤S1已在图1所示的实施例中详细描述,在此以引用的方式包含,不再重述。
接着,在步骤S2’中,图像处理***将包含所述插值点的像素点阵列中一条对角线上的各像素点各自的像素值分别与另一条对角线上的各像素点的像素值进行比较,以判断所述像素点阵列构成的图像区域是否为平坦区域来确定所述梯度方向。例如,图像处理***将处于对角线上的两像素点d22和d33分别与另一对角线上的两像素点d32和d23的像素值进行比较,以判断所述像素点阵列构成的图像区域是否为平坦区域来确定所述梯度方向。
接着,步骤S3和S4已在图1所示的实施例中详细描述,在此以引用的方式包含,不再重述。
图4示出了本发明又一个方面的在图像处理***中基于矩阵对图像进行插值的方法的流程图。
具体的,在步骤S1’中,图像处理***获取2*2像素点阵列包含的各像素点的像素值,其中,所述2*2像素点阵列包含插值点。例如,如图2所示,所述2*2像素点阵列由与插值点P相邻的4个像素点d22、d23、d32和d33所构成。
接着,在步骤S21中,图像处理***将与所述插值点相邻的4个像素点中处于同一对角线上的两个像素点各自的像素值分别与各自相邻的两像素点的像素值进行比较,当处于同一对角线上的两个像素点中有一者的像素值不小于(即大于或等于)其相邻的两像素点的像素值,而另一者小于其相邻的两像素点的像素值,则判断所述4个像素点构成的图像区域为平坦区域,所述梯度方向即为该对角线方向。
例如,设定:a=像素点d22的像素值,c=像素点d33的像素值,
b=像素点d23的像素值,d=像素点d32的像素值,
图像处理***将对角线上的两像素点d22和d33的像素值a和c分别与另一对角线上的两像素点d23和d32的像素值b和d进行比较,即:
如果:a>=b&&a>=d&&c<=b&&c<=d、或者:
a<=b&&a<=d&&c>=b&&c>=d,
则所述图像处理***判断所述4个像素点构成的图像区域为平坦区域,所述梯度方向即为两像素点d22和d33所形成的对角线方向。
而如果:b>=a&&b>=c&&d<=a&&d<=c、或者:
b<=a&&b<=c&&d>=a&&d>=c,
则所述图像处理***也判断所述4个像素点构成的图像区域为平坦区域,所述梯度方向即为两像素点d23和d32所形成的对角线方向。
接着,在步骤S31中,所述图像处理***根据所述插值点的位置及所确定的作为梯度方向的对角线,选择以该对角线为边的三角形作为待插值的三角形。例如,图像处理***确定两像素点d22和d33所形成的对角线方向为梯度方向,故图像处理***可在像素点d32、d22和d33构成的三角形或者像素点d23、d22和d33构成的三角形中选择一者作为待插值的三角形,而如果插值点P处于由像素点d32、d22和d33构成的三角形中,则图像处理***选择像素点d32、d22和d33构成的三角形作为待插值的三角形。再例如,图像处理***确定两像素点d23和d32所形成的对角线方向为梯度方向,故图像处理***可在像素点d22、d23和d32构成的三角形或者像素点d33、d23和d32构成的三角形中选择一者作为待插值的三角形,而如果插值点P处于由像素点d22、d23和d32构成的三角形中,则图像处理***选择像素点d22、d23和d32构成的三角形作为待插值的三角形。
接着,在步骤S41中,图像处理***基于所确定的三角形的三个顶点所对应的像素点的像素值及插值点距离所述三角形中一个顶点的距离,计算所述插值点的像素值。作为一种优选方式,如图5所示,图像处理***可按照如下公式计算所述插值点的像素值zout:
zout=p0-(-p1+p0)*x-(p0-p2)*y,
其中,p0、p1、p2为待插值的三角形的3个顶点所对应的像素点的像素值,x、y分别为插值点距离像素值为p0的像素点的水平距离和垂直距离。
图6示出了本发明又一个方面的在图像处理***中基于矩阵对图像进行插值的方法的流程图。
具体的,步骤S1已在图1所示的实施例中详细描述,在此以引用的方式包含,不再重述。
接着,在步骤S221中,图像处理***判断一条对角线上的两个像素点中有一者的像素值大于另一条对角线上的两像素点的像素值、而另一者小于另一条对角线上的两像素点的像素值的情形不成立,由此图像处理***判断所述4个像素点构成的图像区域为非平坦区域。
例如,仍然设定:a=像素点d22的像素值,c=像素点d33的像素值,
b=像素点d23的像素值,d=像素点d32的像素值,
图像处理***判断:
a>=b&&a>=d&&c<=b&&c<=d、或者:
a<=b&&a<=d&&c>=b&&c>=d、或者:
b>=a&&b>=c&&d<=a&&d<=c、或者:
b<=a&&b<=c&&d>=a&&d>=c,
都不能成立,由此图像处理***判断所述4个像素点构成的图像区域为非平坦区域。
接着,在步骤S222中,图像处理***通过将与插值点相邻的各像素点的像素值与各自水平方向和垂直上相邻的各像素点的像素值进行比较来确定所述梯度方向。例如,图像处理***将像素点d22、d23、d32、d33的像素值与各自水平方向和垂直方向上相邻的各像素点的像素值进行比较来确定所述梯度方向。
接着,步骤S3和S4已在图1所示的实施例中详细描述,在此以引用的方式包含,不再重述。
图7示出了本发明又一个方面的在图像处理***中基于矩阵对图像进行插值的方法的流程图。
具体的,在步骤S1”中,图像处理***获取4*4像素点阵列包含的16个像素点的像素值,其中,所述4*4像素点阵列包含插值点,例如,如图2所示,所述图像处理***获取与插值点P相关联的4*4像素点阵列中的像素点d11、d12、d13、d14、d21、d22、d23、d24、d31、d32、d33、d34、d41、d42、d43、及d44的像素值。
接着,步骤S221已在图6所示的实施例中详细描述,在此以引用的方式包含,不再重述。
接着,在步骤S222’中,图像处理***将处于同一条对角线上与插值点相邻的两个像素点各自的像素值与各自水平方向和垂直方向上相邻像素点的像素值比较后,判断所述两个像素点各自所获得的水平方向的比较结果值与垂直方向的比较结果值之和都大于预定值,则确定该条对角线方向为所述梯度方向。
例如,定义一极值特征T为T(Ta,Tb,Tc),其中,Tb为与插值点相邻的像素点的像素值,Ta和Tc为与插值点相邻的像素点水平方向或垂直方向的相邻两像素点的像素值,
如果Ta>Tb&&Tb<Tc,则确定极值特征T为一常数(即比较结果值),例如T=1,如果Ta<Tb&&Tb>Tc,则确定极值特征T为该常数的负值,例如T=-1,其他情形,则确定极值特征T为:T=0。
由此,图像处理***基于上述定义可获得与插值点P相邻的4个像素点d22、d23、d32、d33各自水平方向和垂直方向的极值特征值,即比较结果值。例如,对于像素点d22,图像处理***通过比较断像素点d22的像素值与像素点d21、d23的像素值,可确定像素点d22的水平方向的极值特征值是为1、-1或0,同样,通过比较像素点d22的像素值与像素点d12、d32的像素值,可确定像素点d22垂直方向的极值特征值,对于像素点d23、d32、d33,也通过同样的比较方式,即可确定各像素点各自的水平方向和垂直方向的极值特征值。
进而,图像处理***比较处于同一对角线上的两个像素点各自水平方向和垂直方向的极值特征值之和是否都大于预定值,例如为0,如果是,则确定该对角线方向为所述梯度方向。例如,像素点d22、d23、d33、d32各自的水平方向和垂直方向的极值特征值分别表示为:infl_a_x,infl_a_y,infl_c_x,infl_c_y,
如果:infl_a>0&&infl_c>0,则图像处理***确定像素点d22、d33所形成的对角线方向即为所述梯度方向;其中,infl_a=infl_a_x+infl_a_y,infl_c=infl_c_x+infl_c_y。
如果:infl_b>0&&infl_d>0,则图像处理***确定像素点d23、d32所形成的对角线方向即为所述梯度方向;其中,infl_b=infl_b_x+infl_b_y,infl_d=infl_d_x+infl_d_y。
本领域技术人员应该理解,上述所示的比较结果值仅仅只是列示,而非用于限定本发明,而所述预定值基于比较结果值来确定,当比较结果值并非以1、-1及0来表示,相应的,预定值也可能不为0。
接着,步骤S31和步骤S41已在图4所示的实施例中予以详细说明,在此以引用的方式包含,不再重述。
图8示出了本发明又一个方面的在图像处理***中基于矩阵对图像进行插值的方法的流程图。
具体的,步骤S1”和步骤S221已在图7所示的实施例中予以详细说明,在此以引用的方式包含,不再重述。
接着,在步骤S222”中,图像处理***将处于同一条对角线上与插值点相邻的两个像素点各自的像素值与各自水平方向和垂直方向上相邻的像素点的像素值比较后,判断所述两个像素点各自所获得的水平方向的比较结果值与垂直方向的比较结果值之和都大于预定值的情形不成立,则基于前一次插值所确定的梯度方向来确定当前的梯度方向。如果此次插值处理为一行的首次插值,作为一种优选方式,图像处理***可直接确定像素点d23和d32所形成的对角线方向作为当前的梯度方向。例如,如果前一次插值所确定的梯度方向是4个像素点构成的矩阵中的起始像素点所在的对角线方向,则图像处理***可将像素点d22(即矩阵中起始像素点)所在的对角线方向,即像素点d22和d33所形成的对角线方向作为当前的梯度方向,如果前一次插值确定的梯度方向是另一对角线方向,则图像处理***将另一对角线,即像素点d23和d32所形成的对角线方向作为当前梯度方向。
接着,在步骤S31’中,图像处理***基于前一次插值所确定的梯度方向、及所述插值点的位置确定待插值的三角形。例如,图像处理***基于前一次插值所确定的梯度方向确定当前的梯度方向为像素点d23和d32所形成的对角线方向,由此图像处理***再基于插值点P的位置,选择出包含插值点P的三角形,即像素点d22、d23和d32构成的三角形作为待插值的三角形。
接着,步骤S41已在图4所示的实施例中予以详细说明,在此以引用的方式包含,不再重述。
图9示出了本发明又一个方面的在图像处理***中基于矩阵对图像进行插值的方法的流程图。
具体的,在步骤S51中,图像处理***获取2*2像素点阵列所包含的4个像素点的像素值。例如,图像处理***获取像素点d22、d23、d32、d33的像素值。
接着,在步骤S52中,图像处理***通过将同一对角线上的两像素点各自的像素值与另一对角线上的像素点的像素值进行比较,以判断所述2*2像素点阵列所构成的图像区域是否为平坦区域,具体比较过程如图3、图4及图6所示的实施例中所述,在此不再重述。
接着,在步骤S53中,当图像处理***判断所述2*2像素点阵列所构成的图像区域是平坦区域,则图像处理***基于所述4个像素点的像素值来确定一对角线方向作为梯度方向,即若有一对角线上的两个像素点中有一者的像素值大于其相邻的两像素点的像素值,而另一者小于其相邻的两像素点的像素值,图像处理***将该一对角线方向作为梯度方向。
在步骤S54中,当图像处理***判断所述2*2像素点阵列所构成的图像区域是非平坦区域,则图像处理***再次获取所述2*2像素点阵列中各像素点相邻各像素点的像素值,例如,获取像素点d12、d13、d21、d24、d31、d34、d43、d44的像素值。
接着,在步骤S55中,图像处理***确定所述2*2像素点阵列中各像素点水平方向和垂直方向的极值特征值,进而获得各像素点的水平方向和垂直方向的极值特征值之和。具体可参见图6至图8所示的实施例所述确定像素点的极值特征值的描述,在此不再重述。
接着,在步骤S56中,图像处理***判断是否有一对角线上的两像素点各自的水平方向和垂直方向的极值特征值之和都大于预定值。
接着,在步骤S57中,当图像处理***判断有一对角线上的两像素点各自的水平方向和垂直方向的极值特征值之和都大于预定值,则确定该对角线方向作为梯度方向。
接着,在步骤S58中,当图像处理***判断没有任何一对角线上的两像素点各自的水平方向和垂直方向的极值特征值之和都大于预定值,则基于前一次插值所确定的梯度方向作为当前的梯度方向。具体可参见图8所示的实施例中的详细描述,在此不再重述。
接着,在步骤S59中,图像处理***基于所确定的梯度方向、及所述插值点的位置,在与所述插值点相邻的4个像素点所构成的图像区域中确定待插值的三角形。具体可参见前述图4、图7及图8所示的实施例中的详细描述,在此不再重述。
最后,在步骤S60中,图像处理***基于所确定的三角形的三个顶点所对应的像素点的像素值及插值点距离所述三角形中一个顶点的距离,计算所述插值点的像素值。具体可参见前述图4、图7及图8所示的实施例中的详细描述,在此不再重述。
请参阅图10,其为本发明一个方面的基于矩阵对图像进行插值的图像处理***示意图。其中,所述图像处理***包括:梯度确定模块11、三角形确定模块12、及计算模块13。
首先,图像处理***获取包含插值点的像素点阵列的各像素点的像素值,例如,图像处理***可以获取一4*4像素点阵列的16个像素点的像素值,如图2所示,所述图像处理***获取包含插值点P的4*4像素点阵列中的像素点d11、d12、d13、d14、d21、d22、d23、d24、d31、d32、d33、d34、d41、d42、d43、及d44的像素值。
本领域技术人员应该理解,图像处理***获取像素点阵列并非以所示为限,事实上,其也可以获取2*2、8*8的像素点阵列等等。
接着,梯度确定模块11确定与插值点相关的像素点阵列所构成的图像区域的梯度方向。例如,梯度确定模块11确定包含插值点P的像素点d11、d12、d13、d14、d21、d22、d23、d24、d31、d32、d33、d34、d41、d42、d43、及d44构成的图像区域的梯度方向,例如,为像素点d14、d23、d32与d41形成的对角线方向;再例如,为像素点d11、d22、d33与d44形成的对角线方向等。
接着,三角形确定模块12基于获取的所述梯度方向、及所述插值点的位置,在与所述像素点阵列所构成的图像区域中确定待插值的三角形。例如,梯度确定模块11确定所述梯度方向为像素点d11、d22、d33与d44形成的对角线的方向,则三角形确定模块12根据所述插值点P的位置,例如,插值点P处于像素点d32、d22与d33构成的三角形中,确定像素点d32、d22与d33构成的三角形作为待插值的三角形。再例如,如果梯度确定模块11确定所述梯度方向为像素点d14、d23、d32与d41形成的对角线方向,则三角形确定模块12根据所述插值点P的位置,例如,插值点P处于像素点d22、d23与d32构成的三角形中,选择像素点d22、d23与d32构成的三角形作为待插值的三角形。
最后,计算模块13基于所确定的三角形的三个顶点所对应的像素点的像素值及插值点距离所述三角形中一个顶点的距离,计算所述插值点的像素值。例如,三角形确定模块12确定d22、d23与d32构成的三角形作为待插值的三角形,则计算模块13根据插值点P与像素点d22的距离计算插值点P的像素值。不过,本领域技术人员应该理解,图像处理***也可基于插值点P与像素点d23或者d32之间的距离来计算插值点P的像素值。
图11示出了本发明另一个方面的基于矩阵对图像进行插值的图像处理***示意图。其中,所述图像处理***包括:梯度确定模块11、三角形确定模块12、及计算模块13;所述梯度确定模块11还包括:比较模块111。
具体的,图像处理***获取各像素点的像素值的工作过程已在图10所示的实施例中详细描述,在此以引用的方式包含,不再重述。
接着,比较模块111将包含所述插值点的像素点阵列中一对角线上的各像素点各自的像素值分别与另一对角线上的各像素点的像素值进行比较,以判断所述像素点阵列构成的图像区域是否为平坦区域来确定所述梯度方向。例如,比较模块111将处于对角线上的两像素点d22和d33分别与另一对角线上的两像素点d32和d23的像素值进行比较,以判断所述像素点阵列构成的图像区域是否为平坦区域来确定所述梯度方向。
接着,三角形确定模块12、及计算模块13已在图10所示的实施例中详细描述,在此以引用的方式包含,不再重述。
以下将基于图11所示的图像处理***描述本发明又一个方面的基于矩阵对图像进行插值的工作过程。
具体的,图像处理***获取2*2像素点阵列包含的各像素点的像素值,其中,所述2*2像素点阵列包含插值点。例如,如图2所示,所述2*2像素点阵列由与插值点P相邻的4个像素点d22、d23、d32和d33所构成。
接着,比较模块111将与所述插值点相邻的4个像素点中处于同一对角线上的两个像素点各自的像素值分别与各自相邻的两像素点的像素值进行比较,当处于同一对角线上的两个像素点中有一者的像素值不小于(即大于或等于)其相邻的两像素点的像素值、而另一者小于其相邻的两像素点的像素值,则判断所述4个像素点构成的图像区域为平坦区域,所述梯度方向即为该对角线方向。
例如,设定:a=像素点d22的像素值,c=像素点d33的像素值,
b=像素点d23的像素值,d=像素点d32的像素值,
比较模块111将对角线上的两像素点d22和d33的像素值a和c分别与另一对角线上的两像素点d23和d32的像素值b和d进行比较,即:
如果:a>=b&&a>=d&&c<=b&&c<=d、或者:
a<=b&&a<=d&&c>=b&&c>=d,
则所述比较模块111判断所述4个像素点构成的图像区域为平坦区域,所述梯度方向即为两像素点d22和d33所形成的对角线方向。
而如果:b>=a&&b>=c&&d<=a&&d<=c、或者:
b<=a&&b<=c&&d>=a&&d>=c,
则比较模块111也判断所述4个像素点构成的图像区域为平坦区域,所述梯度方向即为两像素点d23和d32所形成的对角线方向。
接着,所述三角形确定模块12根据所述插值点的位置及所确定的作为梯度方向的对角线,选择以该对角线为边的三角形作为待插值的三角形。例如,比较模块111确定两像素点d22和d33所形成的对角线方向为梯度方向,故所述三角形确定模块12可在像素点d32、d22和d33构成的三角形或者像素点d23、d22和d33构成的三角形中选择一者作为待插值的三角形,而如果插值点P处于由像素点d32、d22和d33构成的三角形中,则所述三角形确定模块12选择像素点d32、d22和d33构成的三角形作为待插值的三角形。再例如,比较模块111确定确定两像素点d23和d32所形成的对角线方向为梯度方向,故所述三角形确定模块12可在像素点d22、d23和d32构成的三角形或者像素点d33、d23和d32构成的三角形中选择一者作为待插值的三角形,而如果插值点P处于由像素点d22、d23和d32构成的三角形中,则所述三角形确定模块12选择像素点d22、d23和d32构成的三角形作为待插值的三角形。
接着,计算模块13基于所确定的三角形的三个顶点所对应的像素点的像素值及插值点距离所述三角形中一个顶点的距离,计算所述插值点的像素值。作为一种优选方式,如图5所示,计算模块13可按照如下公式计算所述插值点的像素值zout:
zout=p0-(-p1+p0)*x-(p0-p2)*y,
其中,p0、p1、p2为待插值的三角形的3个顶点所对应的像素点的像素值,x、y分别为插值点距离像素值为p0的像素点的水平距离和垂直距离。
以下将基于图11所示的图像处理***详细描述本发明又一个方面的基于矩阵对图像进行插值的工作过程。
具体的,图像处理***获取各像素点的像素值的过程已在前一实施例中详细描述,在此以引用的方式包含,不再重述。
接着,比较模块111判断一条对角线上的两个像素点中有一者的像素值大于另一条对角线上的两像素点的像素值、而另一者小于另一条对角线上的两像素点的像素值的情形不成立时,比较模块111判断所述4个像素点构成的图像区域为非平坦区域。
例如,仍然设定:a=像素点d22的像素值,c=像素点d33的像素值,
b=像素点d23的像素值,d=像素点d32的像素值,
比较模块111判断:
a>=b&&a>=d&&c<=b&&c<=d、或者:
a<=b&&a<=d&&c>=b&&c>=d、或者:
b>=a&&b>=c&&d<=a&&d<=c、或者:
b<=a&&b<=c&&d>=a&&d>=c,
都不成立,由此,比较模块111判断所述4个像素点构成的图像区域为非平坦区域。
接着,比较模块111通过将与插值点相邻的各像素点的像素值与各自水平方向和垂直上相邻的各像素点的像素值进行比较来确定所述梯度方向。
接着,三角形确定模块12、计算模块13已在图10所示的实施例中详细描述,在此以引用的方式包含,不再重述。
以下将基于图11所示的图像处理***详细描述本发明又一个方面的基于矩阵对图像进行插值的工作过程。
具体的,图像处理***获取4*4像素点阵列包含的16个像素点的像素值,其中,所述4*4像素点阵列包含插值点,例如,如图2所示,图像处理***获取与插值点P相关联的4*4像素点阵列中的像素点d11、d12、d13、d14、d21、d22、d23、d24、d31、d32、d33、d34、d41、d42、d43、及d44的像素值。
接着,比较模块111判断与插值点相邻的4个像素点所构成的图像区域为非平坦区域的过程已在前一实施例中详细描述,在此以引用的方式包含,不再重述。
接着,比较模块111将处于同一条对角线上与插值点相邻的两个像素点各自的像素值与各自水平方向和垂直方向上相邻的像素点的像素值比较后,判断所述两个像素点各自所获得的水平方向的比较结果值与垂直方向的比较结果值之和都大于预定值,则确定该条对角线方向为所述梯度方向。。
例如,定义极值特征T为T(Ta,Tb,Tc),其中,Tb为与插值点相邻的像素点的像素值,Ta和Tc为与插值点相邻的像素点水平方向或垂直方向的相邻两像素点的像素值,
如果Ta>Tb&&Tb<Tc,则确定极值特征T为一常数(即比较结果值),例如T=1,如果Ta<Tb&&Tb>Tc,则确定极值特征T为该常数的负值,例如T=-1,其他情形,则确定极值特征T为:T=0。
由此,所述比较模块111基于上述定义可获得与插值点P相邻的4个像素点d22、d23、d32、d33各自的水平方向和垂直方向的极值特征值,即比较结果值。例如,对于像素点d22,所述比较模块111通过比较断像素点d22的像素值与像素点d21、d23的像素值,可确定像素点d22的水平方向的极值特征值是为1、-1或0,同样,通过比较像素点d22的像素值与像素点d12、d32的像素值,可确定像素点d22垂直方向的极值特征值,对于像素点d23、d32、d33,也通过同样的比较方式,即可确定各像素点各自的水平方向和垂直方向的极值特征值。
进而,比较模块111比较处于同一对角线上的两个像素点各自水平方向和垂直方向的极值特征值之和是否都大于预定值,例如为0,如果是,则确定该对角线方向为所述梯度方向。例如,像素点d22、d23、d33、d32各自的水平方向和垂直方向的极值特征值分别表示为:infl_a_x,infl_a_y,infl_c_x,infl_c_y,
如果:infl_a>0&&infl_c>0,则比较模块111确定像素点d22、d33所形成的对角线方向即为所述梯度方向;其中,infl_a=infl_a_x+infl_a_y,infl_c=infl_c_x+infl_c_y。
如果:infl_b>0&&infl_d>0,则比较模块111确定像素点d23、d32所形成的对角线方向即为所述梯度方向;其中,infl_b=infl_b_x+infl_b_y,infl_d=infl_d_x+infl_d_y。
本领域技术人员应该理解,上述所示的比较结果值仅仅只是列示,而非用于限定本发明,而所述预定值基于比较结果值来确定,当比较结果值并非以1、-1及0来表示,相应的,预定值也可能不为0。
接着,三角形确定模块12及计算模块13已在前一实施例中予以详细说明,在此以引用的方式包含,不再重述。
以下将基于图11所示的图像处理***详细描述本发明又一个方面的基于矩阵对图像进行插值的工作过程。
具体的,图像处理***获取像素点的像素值的过程、及比较模块111确定像素点水平方向和垂直方向极值特征值的过程已在前一实施例中予以详细说明,在此以引用的方式包含,不再重述。
接着,比较模块111将处于同一条对角线上与插值点相邻的两个像素点各自的像素值与各自水平方向和垂直方向上相邻的像素点的像素值比较后,判断所述两个像素点各自所获得的水平方向的比较结果值与垂直方向的比较结果值之和都大于预定值的情形不成立,则基于前一次插值所确定的梯度方向来确定当前的梯度方向。如果此次插值处理为一行的首次插值,作为一种优选方式,比较模块111可直接确定像素点d23和d32所形成的对角线方向作为当前的梯度方向。例如,如果前一次插值所确定的梯度方向是4个像素点构成的矩阵中的起始像素点所在的对角线方向,则比较模块111可将像素点d22(即矩阵中起始像素点)所在的对角线方向,即像素点d22和d33所形成的对角线方向作为当前的梯度方向,如果前一次插值确定的梯度方向是另一对角线方向,则比较模块111将另一对角线,即像素点d23和d32所形成的对角线方向作为当前梯度方向。
接着,三角形确定模块12基于前一次插值所确定的梯度方向、及所述插值点的位置确定待插值的三角形。例如,比较模块111基于前一次插值所确定的梯度方向确定当前的梯度方向为像素点d23和d32所形成的对角线方向,由此三角形确定模块12再基于插值点P的位置,选择出包含插值点P的三角形,即像素点d22、d23和d32构成的三角形作为待插值的三角形。
接着,计算模块的工作过程已在前述实施例中予以详细说明,在此以引用的方式包含,不再重述。
以下将基于图11所示图像处理***详细描述本发明又一个方面的在中基于矩阵对图像进行插值的过程。
具体的,图像处理***获取2*2像素点阵列所包含的4个像素点的像素值。例如,图像处理***获取像素点d22、d23、d32、d33的像素值。
接着,比较模块111通过将同一对角线上的两像素点各自的像素值与另一对角线上的像素点的像素值进行比较,以判断所述2*2像素点阵列所构成的图像区域是否为平坦区域,具体比较过程前述各实施例中所述,在此不再重述。
接着,当比较模块111判断所述2*2像素点阵列所构成的图像区域是平坦区域,则比较模块111基于所述4个像素点的像素值来确定一对角线方向作为梯度方向,即若有一对角线上的两个像素点中有一者的像素值大于其相邻的两像素点的像素值,而另一者小于其相邻的两像素点的像素值,比较模块111将该一对角线方向作为梯度方向。
而当比较模块111判断所述2*2像素点阵列所构成的图像区域是非平坦区域,则图像处理***再次获取所述2*2像素点阵列中各像素点相邻各像素点的像素值,例如,获取像素点d12、d13、d21、d24、d31、d34、d43、d44的像素值。
接着,比较模块111确定所述2*2像素点阵列中各像素点水平方向和垂直方向的极值特征值,进而获得各像素点的水平方向和垂直方向的极值特征值之和。具体过程可参见前述各实施例,在此不再重述。
接着,比较模块111判断是否有一对角线上的两像素点各自的水平方向和垂直方向的极值特征值之和都大于预定值。
接着,当比较模块111判断有一对角线上的两像素点各自的水平方向和垂直方向的极值特征值之和都大于预定值,则确定该对角线方向作为梯度方向。
而当比较模块111判断没有任何一对角线上的两像素点各自的水平方向和垂直方向的极值特征值之和都大于预定值,则基于前一次插值所确定的梯度方向作为当前的梯度方向。具体可参见前述实施例中的详细描述,在此不再重述。
接着,三角形确定模块12基于所确定的梯度方向、及所述插值点的位置,在与所述插值点相邻的4个像素点所构成的图像区域中确定待插值的三角形。具体可参见前述各实施例中的详细描述,在此不再重述。
最后,计算基于所确定的三角形的三个顶点所对应的像素点的像素值及插值点距离所述三角形中一个顶点的距离,计算所述插值点的像素值。具体可参见前述各实施例中的详细描述,在此不再重述。
相较于现有的图像处理方法,本发明方法处理后的图像,可有效解决缩放图像斜方向细节的边缘毛刺或锯齿问题,获得更高质量图像,而且,本发明的方法只需要数目较少的乘法计算。在实现方式上,相对于现有基于多相滤波的插值要先输入行或列进行运算,再输入列或行进行运算的方式,本发明仅仅只需要一次输入一像素点阵列,即可获得一插值点的像素值,因此本发明在运算结构上相对简单。
上述实施例仅列示性说明本发明的原理及功效,而非用于限制本发明。任何熟悉此项技术的人员均可在不违背本发明的精神及范围下,对上述实施例进行修改。因此,本发明的权利保护范围,应如权利要求书所列。