CN1317884C - 一种实现图像整数倍放大的方法 - Google Patents
一种实现图像整数倍放大的方法 Download PDFInfo
- Publication number
- CN1317884C CN1317884C CNB2004101040483A CN200410104048A CN1317884C CN 1317884 C CN1317884 C CN 1317884C CN B2004101040483 A CNB2004101040483 A CN B2004101040483A CN 200410104048 A CN200410104048 A CN 200410104048A CN 1317884 C CN1317884 C CN 1317884C
- Authority
- CN
- China
- Prior art keywords
- point
- interpolation point
- pixel
- value
- row
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
本发明有关一种实现图像整数倍放大的方法,包括:在原图像中按序选取四个相邻像素点,并根据其像素值和需要放大的倍数,计算并存储中间插值点及边缘插值点的像素值,若原图像中全部相邻的像素点都计算完毕,则输出计算出的全部中间插值点、边缘插值点及原图像像素点的相应像素值,得到放大后的新图像。采用本发明方法能够大大降低对图像放大时的插值计算复杂度,并使放大后的图像保持良好的清晰度和边缘锐利性。
Description
技术领域
本发明涉及图像处理,尤指一种实现图像整数倍放大的方法。
背景技术
在进行图像缩放时,需要采用插值技术。所谓插值也称为“重置样本”,是在不生成像素的情况下增加图像像素大小的一种方法,在周围像素色彩的基础上用数学公式计算丢失像素的色彩,也就是根据中心像素点的颜色参数模拟出周边像素值的方法。插值是图像缩放处理的基础,常见的图像缩放插值算法有最近像素插值法、线性插值法以及立方插值法。
最近插值法是取距离最近的像素点的像素值作为新增像素的像素值。这种算法复杂度低,速度快,但是会导致图像很明显的失真,使放大后的图像出现马赛克和锯齿等明显的走样情况。其插值原理如图1所示:A、B是原图上已经有的像素点,如果要知道其中间X位置处的像素值,需要找出X位置和A、B位置之间的距离d1、d2,因为d2小于d1,所以取X位置处像素值等于B像素点的像素值。
线性插值法是认为两个点之间的像素值是按线性变化的,新插入点的像素值与相邻两点的像素值成线性关系。线性插值法复杂度要比最近像素插值法高,但效果有明显的改善,图像显得平滑、清晰。其原理如图2所示:A、B两点的像素值之间,认为是直线变化的,如果要求X点处的像素值,由于X点处像素值与A、B点像素值成线性关系,只需要找到对应位置直线上的一点即可。
立方插值法是参照周围若干个像素点,选用合适的曲线匹配来求解新的像素点的像素值。这种方法使得图像更平滑、更清晰,但是由于参照的像素点多,匹配曲线复杂,导致运算复杂度大大提高。立方插值法一般用硬件来实现,软件系统特别是实时传输系统中极少用到。其算法原理如图3所示,如果要求B、C之间某点X的像素值,需要利用B、C周围A、B、C、D四个点的像素值,通过某种复杂计算,得到光滑的曲线,从而算出X点的像素值。
现在常用的PC摄像头主要有两种,一种是采集卡摄像头,另一种则是USB摄像头。PC摄像头视频采集主要有以下几种标准图像格式:
SQVGA(160×120),QCIF(176×144),QVGA(320×240),CIF(352×288)和VGA(640×480)。
视频采集选用的图像格式越大,分辨率越高,像素越多,图像的质量也就越好,越清晰。然而很多场合并不能够一味的追求图像质量,因为图像越大,所含的信息量越大,占用的数据空间也就越大。如CIF格式24位精度的RGB图像占用的空间是304128字节,如果每秒钟采集10帧,那么每秒钟的数据量将是3041280字节。目前大多数宽带网络提供的带宽都在2M bits以内,对于象视频会议需要同时提供多路视频显示的实时传输系统而言,显然不能够按大图像格式采集,而只能牺牲视频图像的质量,采用SQVGA或QCIF小图像格式。
为了能给用户提供更友好的操作性能以及视觉效果,视频会议等系统往往需要提供图像缩放功能。目前,绝大多数的视频会议系统采用最近插值法或线性插值法进行图像放大。最近插值法会导致图像质量的急剧恶化,在大比例放大的情况下是不可取的。而现有的线性插值法考虑的是任意比例图像缩放,在实现过程中用浮点运算,运算复杂度仍然很高,无法满足系统同时进行多路视频放大的要求。此外,现有的线性插值法在运算过程中由于精度的损失,会使放大后的图像变暗、模糊。
发明内容
本发明提供一种实现图像整数倍放大的方法,以解决现有技术中对图像放大时插值运算复杂度高且放大图像清晰度低的问题。
本发明方法包括:若需将原图像在宽度方向放大n倍,在高度方向放大m倍,其中,m、n为大于1的整数,则执行下列步骤:
A、按序选取原图像中的四个相邻像素点A、B、C和D,并获取其对应像素值VA、VB、VC和VD;所述四个相邻像素点位于水平方向相邻两行且垂直方向相邻两列中;
B、在所选取的四个相邻像素点之间插入中间插值点,按下式计算出各中间插值点的像素值Vij,并存储;
式中,i、j表示中间插值点与所选四个像素点的相对位置坐标,1≤i≤(m-1);1≤j≤(n-1);
C、在所选取的四个相邻像素点之外添加边缘插值点,定义位于第n列右边且在第m行及其上方区域的边缘插值点为水平边缘插值点,位于第m行下方区域的全部边缘插值点为垂直边缘插值点;并按下列公式分别计算出所述水平边缘插值点和垂直边缘插值点的像素值,并存储;
水平边缘插值点的像素值计算公式为:
Vip=Vi0+pVi_step
式中,1≤p≤(n-1),1≤i≤m;Vip表示第i行第p列的水平边缘插值点的像素值;Vi0表示与第i行第一个水平边缘插值点相邻的中间插值点的值;Vi_step表示第i行边缘插值点的计算步长,其值为该行相邻两个中间插值点的差值;
垂直边缘插值点的像素值计算公式为:
Vqj=V0j+qVj_step
式中,1≤q≤(m-1),1≤j≤(n-1);Vqj表示第q行第j列的垂直边缘插值点的值;V0j表示与第q行第一个垂直边缘插值点相邻的中间插值点的值;Vj_step表示第q行边缘插值点的计算步长,其值为该列相邻两个中间插值点的差值;
D、若原图像中全部相邻的像素点都计算完毕,则输出计算出的全部中间插值点、边缘插值点的相应像素值,得到在宽度方向放大n倍,在高度方向放大m倍的新图像;否则,重复上述步骤。
所述步骤A包括:
设置像素点行坐标计算器的计数值为w,列坐标计算器的计数值为h;若原图像在宽度方向有X个像素点,高度方向有Y个像素点,则执行下列步骤:
A1、计数器清零,使w=0,h=0;
A2、判断h是否小于(Y-1),若是,执行下列步骤,否则,转至步骤C;
A3、判断w是否小于(X-1),若是,执行下列步骤,否则,使h=h+1,w=0;转至步骤A2;
A4、从原图像存储空间中的如下A位置、B位置、C位置和D位置获取相邻四个像素点的像素值:
A位置=h*X+w;
B位置=A位置+1;
C位置=A位置+X;
D位置=C位置+1;
A5、使w=w+1,转至步骤A3。
在执行所述步骤A之前还包括有为新图像申请大小为原图像的m*n倍的存储空间的步骤。
所述m、n的取值相同或不同。
采用本发明方法能够大大降低对图像放大时的插值计算复杂度,并使放大后的图像保持良好的清晰度和边缘锐利性。
附图说明
图1为现有技术中最近插值法插值原理示意图;
图2为现有技术中线性插值法插值原理示意图;
图3为现有技术中立方插值法插值原理示意图;
图4为对原图像宽、高各放大2倍后的像素点示意图;
图5为对原图像宽放大n倍、高放大m倍后的像素点示意图;
图6为本发明方法流程图。
具体实施方式
下面说明整数倍放大插值算法的原理。
图4表示原图像中四个相邻A、B、C、D像素点,其宽、高经过2倍的整数倍插值后的示意图,A、B、C、D像素点仍然出现在放大后的新图像中,a…1为插入点。可以看出,a,c,d,e,g点处于四个相邻点之间,其像素值可以由相邻点A、B、C、D的像素值计算得出,称为中间插值点;而b,f,h,i,j,k,l处于图像的边缘处,称为边缘插值点。对于边缘插值点,可以有两种方法求出其像素值,一种是采用最近插值法原理,直接取距离最近像素点的值,例如,取B点的像素值作为b点的像素值,e点的像素值作为f点的像素值;取C点的像素值作为i点的像素值,h点的像素值作为l点的像素值。这种方法缺点在于当放大倍数较大时图像边缘出现明显的条状效应,图像不够平滑。另一种是认为边缘像素点与其邻近点也成线性关系,如b点与a点、B点成线性关系,f点与d点、e点成线性关系;i点与c点、C点成线性关系,j点与d点、g点成线性关系,这样,边缘像素点也很容易求出,并且使得图像平滑。本发明采用后一种方法。
图5为对原图像宽、高分别放大n、m(n、m均为大于1的任意整数)倍的整数倍插值示意图,同样地将插值像素分为中间插值点和边缘插值点两部分进行处理。下面结合图5分别推导出宽、高分别放大n、m倍的整数倍插值算法的中间插值点和边缘插值点的计算公式。
用V表示像素点的值,那么Vij表示第i行第j列的像素点的值。
如图5所示,定义第n列右边且在第m行上方(包括第m行)部分为水平边缘插值点,第m行下方所有点为垂直边缘插值点。
中间插值点的计算公式为:
Vij=Vi1+j(Vin-Vi1)/n 公式(1)
Vi1=V11+i(Vm1-V11)/m 公式(2)
Vin=V1n+i(Vmn-V1n)/m 公式(3)
将公式(2),(3)代入公式(1)式,简化后得到下式
令VA=V11;VB=V1n;VC=Vm1;VD=Vmn则得到任意中间插值点的计算公式:
边缘插值点的计算公式如下
水平方向的边缘插值点:
Vi(n+p)=Vin+p(Vin-Vi(n-1))
Vin,Vi(n-1)是已计算出来的水平相邻像素点,令Vi_step=Vin-Vi(n-1),则得到
Vi(n+p)=Vin+pVi_step
只考虑水平边缘插值点,因此令n=0,得到水平边缘插值点计算公式如下:
Vip=Vi0+pVi_step 公式(5)
其中,Vip表示第i行第p列的水平边缘插值点的值;Vi0表示与第i行第一个水平边缘插值点相邻的中间插值点的值;Vi_step表示第i行边缘插值点的计算步长,其值为该行相邻两个中间插值点的差值。
垂直方向的边缘插值点:
V(m+q)j=vmj+q(Vmj-V(m-1)j)
Vmj,V(m-1)是已计算出来的垂直相邻像素点,令Vj_step=Vmj-V(m-1)j,则得到
V(m+q)j=Vmj+qVj_step
只考虑垂直边缘插值点,因此令m=0,得到垂直边缘插值点计算公式如下:
Vqj=V0j+qVj_step 公式(6)
其中,Vqj表示第q行第j列的垂直边缘插值点的值;V0j表示与第q行第一个垂直边缘插值点相邻的中间插值点的值;Vj_step表示第q行边缘插值点的计算步长,其值为该列相邻两个中间插值点的差值。
比较公式(5),(6),两个公式是一致的,因此使用统一的计算公式(7)来替代
Vk=V0+kVstep 公式(7)
其中,在计算某一行水平边缘插值点时,k表示该行第k个水平边缘插值点,Vk表示该点的像素值,V0表示该行第一个水平边缘插值点相邻的中间插值点的像素值,Vstep表示该行边缘插值点的计算步长;在计算某一列的垂直边缘插值点时,k表示该列第k个垂直边缘插值点,Vk表示该点的像素值,V0表示该列第一个垂直边缘插值点相邻的中间插值点的像素值,Vstep表示该列边缘插值点的计算步长。
由于插值过程并不能够在原图像上直接插入像素点,因此需要另外申请一个大的存储空间(大小为原图像的m*n倍),然后在该存储空间上进行填值得到新的图像。因此,对于任意宽度为X个像素点,高度为Y个像素点的图像,宽高分别放大n、m整数倍的线性插值过程如图6所示:
首先申请一个大小为原图像m*n倍的存储空间,设置像素点行坐标计算器的计数值为w,列坐标计算器的计数值为h;若原图像在宽度方向有X个像素点,高度方向有Y个像素点,则执行下列步骤:
A1、计数器清零,使w=0,h=0;
A2、判断h是否小于(Y-1),若是,执行步骤A3,否则,转至步骤A6;
A3、判断w是否小于(X-1),若是,执行步骤A4,否则,使h=h+1,w=0;转至步骤A2;
A4、从原图像存储空间中的如下A位置、B位置、C位置和D位置获取相邻四个像素点的像素值:
A位置=h*X+w;
B位置=A位置+1;
C位置=A位置+X;
D位置=C位置+1;
取得原图像四个相邻点的对应像素值后,根据公式(4)计算出该四个相邻点的中间插值点的像素值Vij,填入新图像存储空间的对应位置中;继续步骤A5;
A5、使w=w+1,转至步骤A3;
A6、根据公式(7)计算出所有水平边缘插值点的像素值,填入新图像存储空间的对应位置中;
A7、根据公式(7)计算出所有垂直边缘插值点的像素值,填入新图像存储空间的对应位置中。
输出计算出的全部中间插值点、边缘插值点的相应像素值,得到在宽度方向放大n倍,在高度方向放大m倍的新图像。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (4)
1、一种实现图像整数倍放大的方法,若需将原图像在宽度方向放大n倍,在高度方向放大m倍,其中,m、n为大于1的整数,则执行下列步骤:
A、按序选取原图像中的四个相邻像素点A、B、C和D,并获取其对应像素值VA、VB、VC和VD;所述四个相邻像素点位于水平方向相邻两行且垂直方向相邻两列中;
B、在所选取的四个相邻像素点之间插入中间插值点,按下式计算出各中间插值点的像素值Vij,并存储;
式中,i、j表示中间插值点与所选四个像素点的相对位置坐标,1≤i≤m;1≤j≤n;
C、在所选取的四个相邻像素点之外添加边缘插值点,定义位于第n列右边且在第m行及其上方区域的边缘插值点为水平边缘插值点,位于第m行下方区域的全部边缘插值点为垂直边缘插值点;并按下列公式分别计算出所述水平边缘插值点和垂直边缘插值点的像素值,并存储;
水平边缘插值点的像素值计算公式为:
Vip=Vi0+pVi_step
式中,1≤p≤(n-1),1≤i≤m;Vip表示第i行第p列的水平边缘插值点的像素值;Vi0表示与第i行第一个水平边缘插值点相邻的中间插值点的值;Vi_step表示第i行边缘插值点的计算步长,其值为该行相邻两个中间插值点的差值;
垂直边缘插值点的像素值计算公式为:
Vqj=V0j+qVj_step
式中,1≤q≤(m-1),1≤j≤(n-1);Vqj表示第q行第j列的垂直边缘插值点的值;V0j表示与第q行第一个垂直边缘插值点相邻的中间插值点的值;Vj_step表示第q行边缘插值点的计算步长,其值为该列相邻两个中间插值点的差值;
D、若原图像中全部相邻的像素点都计算完毕,则输出计算出的全部中间插值点、边缘插值点的相应像素值,得到在宽度方向放大n倍,在高度方向放大m倍的新图像;否则,重复上述步骤。
2、如权利要求1所述的方法,其特征在于,所述步骤A包括:
设置像素点行坐标计算器的计数值为w,列坐标计算器的计数值为h;若原图像在宽度方向有X个像素点,高度方向有Y个像素点,则执行下列步骤:
A1、计数器清零,使w=0,h=0;
A2、判断h是否小于(Y-1),若是,执行下列步骤,否则,转至步骤C;
A3、判断w是否小于(X-1),若是,执行下列步骤,否则,使h=h+1,w=0;转至步骤A2;
A4、从原图像存储空间中的如下A位置、B位置、C位置和D位置获取相邻四个像素点的像素值:
A位置=h*X+w;
B位置=A位置+1;
C位置=A位置+X;
D位置=C位置+1;
A5、使w=w+1,转至步骤A3。
3、如权利要求2所述的方法,其特征在于,在执行所述步骤A之前还包括有为新图像申请大小为原图像的m*n倍的存储空间的步骤。
4、如权利要求2所述的方法,其特征在于,所述m、n的取值相同或不同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004101040483A CN1317884C (zh) | 2004-12-31 | 2004-12-31 | 一种实现图像整数倍放大的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004101040483A CN1317884C (zh) | 2004-12-31 | 2004-12-31 | 一种实现图像整数倍放大的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1633161A CN1633161A (zh) | 2005-06-29 |
CN1317884C true CN1317884C (zh) | 2007-05-23 |
Family
ID=34848203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004101040483A Expired - Fee Related CN1317884C (zh) | 2004-12-31 | 2004-12-31 | 一种实现图像整数倍放大的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1317884C (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7436412B2 (en) * | 2005-08-24 | 2008-10-14 | Qualcomm Incorporated | Graphics engine with efficient interpolation |
CN100373912C (zh) * | 2006-07-10 | 2008-03-05 | 宁波大学 | 用于图像放大处理过程中的快速双线性插值方法 |
CN101155301B (zh) * | 2006-09-28 | 2010-08-11 | 腾讯科技(深圳)有限公司 | 流媒体视频图像放大方法和流媒体接收客户端 |
JP4967934B2 (ja) * | 2007-09-04 | 2012-07-04 | 富士ゼロックス株式会社 | 画像処理装置及びプログラム |
CN100590656C (zh) * | 2008-01-17 | 2010-02-17 | 四川虹微技术有限公司 | 基于样条函数插值算法的图像放大方法 |
CN102289799B (zh) * | 2011-08-31 | 2013-03-27 | 洛阳师范学院 | 一种平面插值和球面插值相结合的图像插值器及方法 |
CN102831574B (zh) * | 2011-12-19 | 2015-01-07 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于fpga的红外图像非整数倍放大的方法 |
CN105513011B (zh) * | 2014-09-23 | 2018-10-16 | 上海机电工程研究所 | 图像缩放方法 |
CN106780340A (zh) * | 2016-12-27 | 2017-05-31 | Tcl集团股份有限公司 | 一种图像放大方法及装置 |
CN109919842A (zh) * | 2019-01-28 | 2019-06-21 | 努比亚技术有限公司 | 图像放大控制方法、终端及计算机可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1175844A (zh) * | 1996-06-05 | 1998-03-11 | 索尼公司 | 图象处理装置和处理方法 |
-
2004
- 2004-12-31 CN CNB2004101040483A patent/CN1317884C/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1175844A (zh) * | 1996-06-05 | 1998-03-11 | 索尼公司 | 图象处理装置和处理方法 |
Non-Patent Citations (3)
Title |
---|
基于双线性插值算法的图像方缩技术与实现 冯惠君 陶索娟 李隆,计算机应用与软件,第7期 2004 * |
基于双线性插值算法的图像方缩技术与实现 冯惠君 陶索娟 李隆,计算机应用与软件,第7期 2004;数字图像处理 [美]Kenneth R.Castleman著,朱志刚等译,96.97,电子工业出版社 2002 * |
数字图像处理 [美]Kenneth R.Castleman著,朱志刚等译,96.97,电子工业出版社 2002 * |
Also Published As
Publication number | Publication date |
---|---|
CN1633161A (zh) | 2005-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6226015B1 (en) | Method of automatically producing sketches and cartoon images from movies | |
CN1220365C (zh) | 屏幕校正方法和图像拾取装置 | |
CN107169927B (zh) | 一种图像处理系统、方法及显示装置 | |
CN102682426A (zh) | 图像处理设备、图像处理方法及程序 | |
CN1246765A (zh) | 用于数字信号内插的方法和系统 | |
CN1317884C (zh) | 一种实现图像整数倍放大的方法 | |
CN1901602A (zh) | 用于图像放大处理过程中的快速双线性插值方法 | |
WO2020253103A1 (zh) | 视频图像处理方法、装置、设备及存储介质 | |
CN1667650A (zh) | 基于边缘检测的图像缩放的方法 | |
CN1150769C (zh) | 静态图象产生方法和装置 | |
CN1221918C (zh) | 内插数据的方法和装置 | |
CN100348045C (zh) | 析像度变换方法及装置 | |
CN1622134A (zh) | 一种实现缩放的图像转换方法 | |
Motmaen et al. | Image inpainting by hyperbolic selection of pixels for two-dimensional bicubic interpolations | |
CN110166798B (zh) | 一种基于4k hdr编辑的下变换方法及装置 | |
CN110390339A (zh) | 一种图像校正方法、装置及存储介质 | |
Li et al. | Look-up table compression for efficient image restoration | |
CN100342710C (zh) | 增强图像的结构方法 | |
CN1293514C (zh) | 一种数字图像的缩放处理系统 | |
CN1520180A (zh) | 具有帧速率转换的图像处理装置及其方法 | |
CN1929625A (zh) | 图像质量评测方法和图像质量评测系统 | |
CN115648215A (zh) | 基于注意力机制和孪生反卷积的服务机器人抓取检测方法 | |
CN103474049B (zh) | 影像处理装置与影像处理方法 | |
CN2736865Y (zh) | 一种数字图像的缩放处理系统 | |
CN104394300B (zh) | 一种视频缩放方法及其系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070523 Termination date: 20111231 |