一种实现图像缩放的方法

文档序号:6446205阅读:164来源:国知局
专利名称:一种实现图像缩放的方法
技术领域
本发明涉及数字图像处理技术,尤指一种实现图像缩放的方法。
背景技术
现实世界中的图像多为模拟图像,但是计算机只能处理数字信息,所以必须将模拟图像转换成适合计算机表示的形式,才能由计算机进行处理,这种将模拟图像转化为数字图像的过程是由图像采集模块完成的。图像采集模块对图像进行采样,将模拟图像离散化为像素点,并用某种颜色模型表示像素点的颜色值。常用的图像采集模块是Bayer传感器,Bayer传感器采用红绿蓝(RGB)颜色模型表示像素点的颜色值。RGB颜色模型有红(R)、绿(G)、蓝(B)三种颜色类型,Bayer传感器的原理是每个像素点只采集一种颜色类型,图1显示的是Bayer传感器对像素点的颜色采集规律。由于在图1所示的坐标系下,像素点颜色类型在初始行的排列方式有所不同,所以存在如图1(a)~图1(d)所示的四种不同的图像采集格式。其中,图1(a)初始行的像素点颜色类型遵循GR的规律重复采集;图1(b)初始行的像素点颜色类型遵循RG的规律重复采集;图1(c)初始行的像素点颜色类型遵循BG的规律重复采集;图1(d)初始行的像素点颜色类型遵循GB的规律重复采集。所述行指的是图1(a)~图1(d)中沿x轴方向排列的像素点。
在以下的说明中,将图1所示的四种图像数据格式统称为Bayer数据格式。Bayer数据格式的特点是每个像素点只具有R、G、B三种颜色类型中的一种颜色类型。
在用数码相机或者计算机显示图像时,由于显示屏的大小不同,经常需要对采集到的图像数据进行缩放操作。所谓缩放是指通过插值的方法将图像放大或缩小。现有技术采用图2所示的过程将Bayer数据格式缩放成符合大小要求的RGB数据格式。所述RGB数据格式是指图像中的每个像素点都具有R、G、B三种颜色类型。这里,将Bayer传感器采集到的图像称为原始图像,该原始图像是Bayer数据格式;经过缩放和数据格式转换后获得的图像称为目的图像,该目的图像是RGB数据格式。下面结合图2详细说明从原始图像获得目的图像的过程。
步骤201将Bayer数据格式的图像转换成RGB数据格式。
Bayer传感器采集到的原始图像是Bayer数据格式,该数据格式遵循图1所示的规律,图像中的每个像素点只有一种颜色类型。在将Bayer数据格式转换成RGB数据格式的过程中,需要用插值的方法使每个像素点具有R、G、B三种颜色类型。
下面以图1(a)中标出的像素点A为例说明Bayer数据格式转换成RGB数据格式的过程。从图1(a)可以看出,像素点A是G颜色类型,假设颜色值为G0。A点沿X轴方向的两个相邻点是R颜色类型,假设这两点的颜色值分别为R1和R2,则像素点A的R颜色类型的颜色值R0可以通过公式(1)所示的插值方法获得R0=0.5*(R1+R2) (1)同理,A点沿Y轴方向的两个相邻点是B颜色类型,假设这两点的颜色值分别为B1和B2,则像素点A的B颜色类型的颜色值B0可以通过公式(2)所示的插值方法获得B0=0.5*(B1+B2) (2)公式(1)和公式(2)中采用的插值方法是最为简单的一种插值方法。在实际应用中,可以根据需要采用其它的插值方法,以获得更好的插值效果。
经过上述过程的转换,像素点A具有三种颜色类型,其颜色值为G=G0,R=R0,B=B0。对Bayer数据格式的原始图像中的所有像素点进行上述过程的转换后,获得RGB数据格式的图像数据。
步骤202对RGB数据格式的图像数据进行缩放操作,得到缩放后的RGB图像。
本步骤中,对步骤201获得的图像进行缩放操作需要计算缩放后图像中所有像素点的颜色值,具体步骤如下首先,找出缩放后图像中的像素点在缩放前图像中的对应点。
其次,根据找到的对应点在缩放前图像中选取插值数据点,对所选取插值数据点的颜色值进行插值计算,获得缩放后图像中相应像素点的颜色值。
RGB数据格式的图像中每个像素点具有三种颜色类型,下面以R颜色类型为例说明缩放操作的过程。
假设缩放前图像的大小为M×N,由于本文中提到的图像都是离散后的图像,所以图像的大小指的是像素点的个数。缩放前该图像R类型的颜色值为f(i,j),其中0≤i<M,0≤j<N。缩放后图像的大小为M′×N′,缩放后图像的R类型颜色值为f′(i′j′),其中0≤i′<M′,0≤j′<N′。
下面参照图3说明像素点(i′,j′)的R类型颜色值f′(i′,j′)的计算过程,具体如下令x=i′M/M′,y=j′N/N′。这里,将坐标值为(x,y)的点称为缩放后像素点(i′,j′)在缩放前图像中的对应点。由(x,y)的值可得 将坐标值为(i,j)的点作为像素点(i′,j′)在缩放前图像的参考点。如图3所示,对应点(x,y)距参考点(i,j)的水平和垂直距离分别为dx和dy,则dx=x-i,dy=y-j,且0≤dx≤1,0 ≤dy≤1。
计算得到对应点(x,y)和参考点(i,j)的坐标值后,可以根据对应点(x,y)或参考点(i,j)选取插值数据点。对于不同的插值方法,所选取插值数据点的个数和位置是不同的。
如果采用双线性插值法(Bi-Linear)计算(i′,j′)点的颜色值f′(i′,j′),可以选择图3标示的A、B、C、D四个点的颜色值进行插值计算,插值的结果由公式(3)可得f(i,j)=(1-dx)(1-dy)f(i,j)+dy(1-dx)f(i,j+1)+dx(1-dy)f(i+1,j)+dxdyf(i+1,j+1)(3)如果采用双三次样条插值法(Bi-Cubic)计算(i′, j′)点的颜色值f′(i′,j′),可以选择图3中以灰色显示的十六个点的颜色值进行插值计算。
对缩放后图像中的M′×N′个像素点都可以采用上述方法计算,以获得所有像素点的R类型颜色值。
对B类型颜色值和G类型颜色值可以采用相似的方法计算,只需将公式(3)中的颜色值f(i,j)用相应类型的颜色值代入即可,此处不再赘述。
由步骤202可以看出,现有技术中使用的缩放方法需要对每个像素点的三种颜色类型都进行一次插值计算,才能完整地获得像素点的颜色值,这意味着每个像素点需要进行三次插值计算,而这种处理方法并没有提供更多的图像信息。在实际应用中,尤其在视频处理等实时性要求较高的场合,现有技术采用的方法在没有提高图像质量的情况下增加了计算的复杂度,所以是不合理的做法。

发明内容
有鉴于此,本发明的主要目的在于提供一种实现图像缩放的方法,减少图像缩放时的计算量,降低图像缩放的计算复杂度,加快图像处理速度,以便更好地应用于视频图像缩放等实时性要求高的场合。
为达到上述目的,本发明的技术方案具体是这样实现的一种实现图像缩放的方法,原始图像是Bayer数据格式,目的图像是RGB数据格式,其特征在于,该方法包括以下步骤a、对原始图像中的每个像素点进行缩放操作,缩放后得到Bayer数据格式的图像;b、将步骤a得到的缩放后图像转换成RGB数据格式,得到目的图像。
进一步地,步骤a所述对像素点的缩放操作包括以下步骤
a1、确定缩放后图像中该像素点的颜色类型;a2、在缩放前图像中选取一个或一个以上与步骤a1所述像素点具有相同颜色类型的插值数据点,利用所选取插值数据点的颜色值插值计算出步骤a1所述像素点的颜色值。
进一步地,步骤a1中确定缩放后图像中像素点的颜色类型操作具体包括首先,设置缩放后图像的初始行排列方式;其次,根据缩放后图像的初始行排列方式以及步骤a1所述像素点的坐标值确定步骤a1所述像素点的颜色类型。
较佳地,所述步骤a2之前进一步包括选取步骤a1中所述像素点在缩放前图像中的对应点;则步骤a2所述选取插值数据点的方法具体是根据所述对应点选取插值数据点。
进一步地,步骤a21中选取对应点的操作具体是根据步骤a1所述像素点的坐标值以及缩放前后图像的大小得到步骤a1所述像素点在缩放前图像中的对应点。
较佳地,步骤a22中选取插值数据点的操作具体是首先,在缩放前图像中选取包围步骤a21所述对应点的矩形网格区;其次,选取所有落在矩形网格区内和落在矩形网格上的与步骤a1所述像素点具有相同颜色类型的点作为插值数据点。
较佳地,所述矩形网格区与坐标轴平行。
较佳地,步骤a1所述像素点是G颜色类型,则所述矩形网格区与坐标轴成45度角。
由上述技术方案可见,本发明的这种实现图像缩放的方法先把Bayer数据格式的图像缩放到符合大小要求,然后将Bayer数据格式转换成RGB数据格式。这样的处理方法使得进行缩放操作时,只需对缩放后图像的像素点进行一次插值操作,计算量仅为现有技术的三分之一,从而加快图像处理速度,使该方法更适用于视频处理等实时性要求较高的领域。


图1(a)~图1(d)为Bayer传感器采集到的Bayer数据格式的图像;图2为现有技术中具有Bayer数据格式的图像缩放成RGB数据格式的流程图;图3为现有技术中插值数据点的选取示意图;图4为本发明中具有Bayer数据格式的图像缩放成RGB数据格式的流程图;图5为本发明中图像缩放操作流程图;图6为本发明一个较佳实施例中R或B类型像素点在缩放前图像中插值数据点的选取示意图;图7为本发明一个较佳实施例中G类型像素点在缩放前图像中插值数据点的选取示意图。
具体实施例方式
本发明的核心思想是原始图像是Bayer数据格式,目的图像是RGB数据格式,对原始图像中的每个像素点进行缩放操作,缩放后得到Bayer数据格式的图像;然后,将缩放后图像通过插值操作转换成RGB数据格式,得到目的图像。
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
如图4所示,本发明分两个阶段将Bayer数据格式的图像缩放成符合大小要求的RGB数据格式。
第一阶段完成图像的缩放操作,缩放后的图像仍保持Bayer数据格式。
在下面的叙述中,缩放前图像的像素点颜色值表示为f(i,j),缩放后图像的像素点颜色值表示为f′(i′,j′)。
图5显示的是缩放后图像中的某个像素点(i′,j′)的颜色值的计算过程,具体包括以下步骤步骤501变换Bayer数据格式的初始行排列方式,根据缩放后图像的初始行排列方式确定像素点(i′,j′)的颜色类型。
假设缩放前图像的初始行排列方式如图1(a)所示,在本步骤中,系统可以灵活选择图1中(a)~(d)四种初始行排列方式中的任意一种作为缩放后图像的Bayer数据格式。即本发明中,缩放前后图像的初始行排列方式可以不同。
确定了缩放后图像的初始行排列方式后,像素点(i′,j′)的颜色类型由初始行排列方式和(i′,j′)的坐标值唯一确定。
缩放后图像选择图1(a)所示的初始行排列方式,则像素点(i′,j′)的颜色类型通过公式(4)确定 缩放后图像选择图1(b)所示的初始行排列方式,则像素点(i′,j′)的颜色类型通过公式(5)确定 缩放后图像选择图1(c)所示的初始行排列方式,则像素点(i′,j′)的颜色类型通过公式(6)确定 缩放后图像选择图1(d)所示的初始行排列方式,则像素点(i′,j′)的颜色类型通过公式(7)确定
本发明这种方法可以根据实际需要改变图像的初始行排列方式,给后续的数据处理带来极大的灵活度。
步骤502选择缩放后图像中的像素点(i′,j′)在缩放前图像中的对应点(x,y)或参考点(i,j)。
选择对应点的方法如下令x=i′M/M′,y=j′N/N′,则对应点(x,y)的位置如图6或图7所示。
选择参考点的方法如下在如图6或图7所示的坐标系下,选择位于对应点(x,y)的左上角,与点(x,y)距离最近,且与像素点(i′,j′)具有相同颜色类型的点作为像素点(i′,j′)的参考点,图6或图7中的点(i,j)就是所选择的参考点。
步骤503~504根据对应点(x,y)或参考点(i,j)选取插值数据点,计算像素点(i′,j′)的颜色值。
从图1的分布情况可以看出,Bayer数据格式中R颜色类型和B颜色类型的像素点个数相同,G颜色类型的像素点个数是R颜色类型或B颜色类型的两倍,即G∶R∶B的比例是2∶1∶1,下面分别讨论具有不同颜色类型的像素点的插值数据点的选取方法其一、R或B类型像素点的插值数据点的选取。如图6所示,A点就是步骤502选择的参考点(i,j)。
如果采用Bi-Linear插值法计算(i′,j′)点的颜色值f′(i′,j′),可以选择图6标示的A、B、C、D四个点的颜色值进行插值计算,A、B、C、D四点位于图6所示平行于坐标网格的矩形网格上,在图6的坐标系下,A、B、C、D四点的坐标值分别为(i,j)、(i,j+2)、(i+2,j)和(i+2,j+2),插值的结果由公式(8)可得f′(i′,j′)=(1-dx)(1-dy)f(i,j)+dy(1-dx)f(i,j+2)+dx(1-dy)f(i+2,j)+dxdyf(i+2,j+2)(8)其中,插值数据点的插值参数dx和dy计算如下由步骤502可得,x=i′M/M′,y=j′N/N′,则对应点(x,y)距参考点(i,j)的水平和垂直距离分别为dx′和dy′,则dx′=x-i,dy′=y-j。利用公式(9)将dx′和dy′归一化到[0,1.0)区间后得到的值即为dx和dy。
Bi-Linear插值法中对插值数据点的选取和现有技术类似,所不同的是本发明中插值数据点在X轴方向和Y轴方向的间隔是现有技术的两倍。
如果采用Bi-Cubic插值法计算(i′,j′)点的颜色值f′(i′,j′),可以选择图6中以灰色显示的十六个点的颜色值进行插值计算。
其二、G类型像素点的插值数据点的选取。如图7所示,A点就是步骤502选择的参考点(i,j)。
如果采用Bi-Linear插值法计算(i′,j′)点的颜色值f′(i′,j′),可以选择图7标示的A、B、C、D四个点的颜色值进行插值计算,A、B、C、D四点位于图7所示与坐标网格成45度夹角的矩形网格上,在图7的坐标系下,A、B、C、D四点的坐标值分别为(i,j)、(i-1,j+1)、(i+l,j+1)和(i,j+2),插值的结果由公式(10)可得f′(i′,j′)=(1-dx)(1-dy)f(i,j)+dy(1-dx)f(i-1,j+1)+dx(1-dy)f(i+1,j+1)+dxdyf(i,j+2) (10)其中,插值数据点的插值参数dx和cy计算如下由步骤502可得,x=i′M/M′,y=j′N/N′,对应点(x,y)距参考点(i,j)的水平和垂直距离分别为dx′和dy′,则dx′=x-i,dy′=y-j。利用公式(11)将dx′和dy′归一化到[0,1.0)区间后得到的值即为dx和dy。
从图7可以看出,本发明这一较佳实施例选取与X、Y坐标网格成45度角的矩形网格上的所有与(i′,j′)具有相同颜色类型的点作为插值数据点。这种45度角矩形网格选取的插值数据点在整体上最接近像素点(i′,j′),所以插值得出的结果能够更准确地描述像素点(i′j′)的颜色值。
对于G类型像素点的插值数据点的选取,Bi-Linear插值法也可以采用与R或B类型像素点相类似的选取方法,即插值数据点围成的矩形网格与坐标网格平行。但是,对G类型像素点而言,这种选取方法忽略了更接近(i′,j′)点的数据点,所以插值得出的结果不如45度角矩形网格选取的插值数据点得出的结果准确。
如果采用Bi-Cubic插值法计算(i′,j′)点的颜色值f′(i′,j′),可以选择图7中以灰色显示的十六个点的颜色值进行插值计算。
采用上述方法可以获得缩放后图像中所有M′×N′个像素点的颜色值。和现有技术相比,本发明的方法只需要计算M′×N′个像素点的插值,而现有技术需要三次计算M′× N′个像素点的插值,故本发明的方法大大减少了计算量,加快图像处理速度。
第二个阶段将Bayer数据格式的图像数据转换成RGB数据格式。
该步骤与现有技术中的步骤201相同,此处不再赘述。
由上述的实施例可见,本发明的这种实现图像缩放的方法减少图像缩放操作的计算复杂度,计算量仅为现有技术的三分之一,从而加快图像处理速度,使该方法更适用于视频处理等实时性要求较高的领域。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种实现图像缩放的方法,原始图像是Bayer数据格式,目的图像是RGB数据格式,其特征在于,该方法包括以下步骤a、对原始图像中的每个像素点进行缩放操作,缩放后得到Bayer数据格式的图像;b、将步骤a得到的缩放后图像转换成RGB数据格式,得到目的图像。
2.根据权利要求1所述的方法,其特征在于,步骤a所述对像素点的缩放操作包括以下步骤a1、确定缩放后图像中该像素点的颜色类型;a2、在缩放前图像中选取一个或一个以上与步骤a1所述像素点具有相同颜色类型的插值数据点,利用所选取插值数据点的颜色值插值计算出步骤a1所述像素点的颜色值。
3.根据权利要求2所述的方法,其特征在于,步骤a1中确定缩放后图像中像素点的颜色类型操作具体包括首先,设置缩放后图像的初始行排列方式;其次,根据缩放后图像的初始行排列方式以及步骤a1所述像素点的坐标值确定步骤a1所述像素点的颜色类型。
4.根据权利要求2所述的方法,其特征在于,所述步骤a2之前进一步包括选取步骤a1中所述像素点在缩放前图像中的对应点;则步骤a2所述选取插值数据点的方法具体是根据所述对应点选取插值数据点。
5.根据权利要求4所述的方法,其特征在于,步骤a21中选取对应点的操作具体是根据步骤a1所述像素点的坐标值以及缩放前后图像的大小得到步骤a1所述像素点在缩放前图像中的对应点。
6.根据权利要求4所述的方法,其特征在于,步骤a22中选取插值数据点的操作具体是首先,在缩放前图像中选取包围步骤a21所述对应点的矩形网格区;其次,选取所有落在矩形网格区内和落在矩形网格上的与步骤a1所述像素点具有相同颜色类型的点作为插值数据点。
7.根据权利要求6所述的方法,其特征在于,所述矩形网格区与坐标轴平行。
8.根据权利要求6或7所述的方法,其特征在于,步骤a1所述像素点是G颜色类型,则所述矩形网格区与坐标轴成45度角。
全文摘要
本发明公开了一种实现图像缩放的方法。该方法的过程包括原始图像是Bayer数据格式,目的图像是RGB数据格式,对原始图像中的每个像素点进行缩放操作,缩放后得到Bayer数据格式的图像;然后,将缩放后图像通过插值操作转换成RGB数据格式,得到目的图像。本发明的这种方法先把Bayer数据格式的图像缩放到符合大小要求,然后将Bayer数据格式转换成RGB数据格式。这样的处理方法使得进行缩放操作时,只需对缩放后图像的像素点进行一次插值操作,所以计算量仅为现有技术的三分之一,从而加快图像处理速度,使该方法更适用于视频处理等实时性要求较高的领域。
文档编号G06T3/00GK1632829SQ20041010269
公开日2005年6月29日 申请日期2004年12月27日 优先权日2004年12月27日
发明者夏煜, 王浩, 怀千江, 白锋 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1