本申请涉及图像处理技术领域,尤其涉及一种基于流式数据处理的图像放大方法及终端。
背景技术:
图像放大是指从一幅低像素图像获得其高像素版本的一种图像处理技术,是图像处理中常用的一种方式。通过将图像放大到一定倍数可以更好地观察图像中的细节信息。
通常情况下,在图像放大的过程中,首先将原图像的像素值乘以目标放大比例,获得所有目标像素点在目标放大图像中的坐标。然后,计算每一个目标像素点的像素值,即可获得目标放大图像。计算目标像素点的像素值的过程包括:1)根据目标放大比例计算每一个目标像素点在原图像中的坐标,该坐标通常为小数;2)通过对目标像素点在原图像中的坐标取整,确定原图像中,与该目标像素点临近的若干个原像素点的坐标;3)根据该临近原像素点的坐标和像素值,通过插值算法计算出目标像素点的像素值。
然而在上述过程中,通常采用逐点计算的方式计算每一个目标像素点的像素值。也就是说,当通过步骤1)-步骤3)计算得到第一个目标像素点的像素值之后,再执行步骤1)-步骤3)计算第二个目标像素点的像素值,依次类推,直至计算获得所有目标像素点的像素值。该方法的数据运算效率低、运算时间较长,对终端硬件资源的消耗较大,导致终端的运行速度变慢,尤其是在配置比较低的终端上更加明显。
技术实现要素:
本申请提供了一种基于流式数据处理的图像放大方法及终端,以解决现有技术对数据运算效率低、运算时间较长,对终端硬件资源的消耗较大,导致终端的运行速度变慢的问题。
本申请的第一方面,提供一种基于流式数据处理的图像放大方法,所述方法包括:
获取原图像和所述原图像的目标放大倍数d0,d0>1,所述原图像的像素为a×b,a为所述原图像每一行像素点的个数;b为所述原图像每一列像素点的个数;
根据所述目标放大倍数d0确定插值放大倍数d和采样间距m;
根据原图像的像素a×b和目标放大倍数d0,确定目标放大图像的所有目标像素点的目的坐标(ki,kj),其中,
根据所述插值放大倍数d、所述采样间距m和所述目的坐标(ki,kj),通过步骤s1-s3计算所有目标像素点的像素值:
s1依次计算所有目标像素点在插值图框中的插值坐标;当任意一个所述目标像素点的插值坐标确定后,将所述插值坐标输送至步骤s2;
s2依次根据所述插值坐标计算所述所有目标像素点在所述原图像中的相关原像素点坐标;当任意一个所述目标像素点的相关原像素点坐标确定之后,将所述相关原像素点坐标输送至步骤s3;
s3依次根据所述相关原像素点坐标和所述相关原像素点的像素值,确定所述所有目标像素点的像素值;
当获取所有目标像素点的像素值时,生成目标放大图像。
可选的,所述根据所述目标放大倍数d0确定插值放大倍数d和采样间距m,包括:
判断所述目标放大倍数d0是否为整数;
如果所述放大倍数d0为整数,则所述插值放大倍数d=d0,所述采样间距m=1;
如果所述目标放大倍数d0为小数,且
如果所述目标放大倍数d0为小数,且
可选的,所述根据所述目标放大倍数d0确定插值放大倍数d和采样间距m,包括:
根据所述目标放大倍数d0从预设的第一参数列表中查找所述插值放大倍数d和所述采样间距m,所述第一参数列表包括所述目标放大倍数d0与所述插值放大倍数d和所述采样间距m的对应关系。
可选的,所述步骤s1包括:
计算所述目标像素点在插值图框中的插值坐标
可选的,所述步骤s2包括:
采用第一公式
根据q1和q2确定所述原图像中与所述目标像素点(ki,kj)相邻的四个相关原像素点:(q1+1,q2+1)、(q1+1,q2+2)、(q1+2,q2+1)和(q1+2,q2+2);
可选的,所述步骤s3中,所述根据所述相关原像素点的坐标和所述相关原像素点的像素值,确定所述所有目标像素点的像素值,包括:
根据r1、r2和插值放大倍数d确定所述目标像素点(ki,kj)与(q1+1,q2+1)的横向距离dx和纵向距离dy;
所述横向距离
或者,根据r1、r2和所述插值放大倍数d,从预设的第二参数列表中查找所述横向距离dx和纵向距离dy;所述第二参数列表包括r1、r2、d与dx和dy的对应关系。
可选的,所述目标像素点对应的插值坐标、相关原像素点坐标和像素值携带有标识信息,所述标识信息用于指示所述插值坐标、相关原像素点坐标和所述像素值对应的目标像素点。
本申请的第二方面,提供一种基于流式数据处理的图像放大终端,所述终端包括:
信息获取单元,用于获取原图像和所述原图像的目标放大倍数d0,d0>1,所述原图像的像素为a×b,a为所述原图像每一行像素点的个数;b为所述原图像每一列像素点的个数;
第一确定单元,用于根据所述目标放大倍数d0确定插值放大倍数d和采样间距m;
第二确定单元,用于根据原图像的像素a×b和目标放大倍数d0,确定目标放大图像的所有目标像素点的目的坐标(ki,kj),其中,
数据处理单元,根据所述插值放大倍数d、所述采样间距m和所述目的坐标(ki,kj),通过步骤s1-s3计算所有目标像素点的像素值:
s1依次计算所有目标像素点在插值图框中的插值坐标;当任意一个所述目标像素点的插值坐标确定后,将所述插值坐标输送至步骤s2;
s2依次根据所述插值坐标计算所述所有目标像素点在所述原图像中的相关原像素点坐标;当任意一个所述目标像素点的相关原像素点坐标确定之后,将所述相关原像素点坐标输送至步骤s3;
s3依次根据所述相关原像素点坐标和所述相关原像素点的像素值,确定所述所有目标像素点的像素值;
图像生成单元,用于当获取所有目标像素点的像素值时,生成目标放大图像。
本申请提供的技术方案包括以下有益技术效果:
本申请在根据插值放大倍数d、采样间距m和目的坐标(ki,kj),通过步骤s1-步骤s3计算目标放大图像中每一个目标像素点的像素值的过程中,目的坐标不断地向步骤s1输送,经s1计算获得的插值坐标不断地向步骤s2输送,经过s2处理获得的相关原像素点坐标又被不断地输送至步骤s3,使数据不断地沿步骤s1-步骤s3方向流动。该方法的数据运算效率高、运算时间较短,对终端硬件资源的消耗较小,有利于保持终端的运行速度,延长终端的使用寿命。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种基于流式数据处理的图像放大方法的流程图。
图2为本申请实施例提供的原图像。
图3为本申请实施例提供的目标放大图像。
图4为本申请实施例提供的另一种基于流式数据处理的图像放大方法的流程图。
图5为本申请实施例提供的插值图框。
具体实施方式
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
实施例1
请参见图1,本申请实施例提供的一种基于流式数据处理的图像放大方法的流程图,所述方法包括步骤s101-步骤s105。本实施例以像素为4×4的原图像放大1.25倍为例,对本申请提供的一种基于流式数据处理的图像放大方法进行详细的说明。
步骤s101,获取原图像和所述原图像的目标放大倍数d0,d0>1,所述原图像的像素为a×b,a为所述原图像每一行像素点的个数,b为所述原图像每一列像素点的个数。
在本实施例中,终端获取一个原图像,所述原图像的像素为4×4,即所述原图像每一行的像素点的个数为4,每一列的像素点的个数也为4,具体请参见图2。终端获取的原图像的目标放大倍数d0=1.25,所述目标放大倍数可以通过键盘、触摸屏等方式手动输入,也可以在通过识别触摸屏上的图像放大手势获取,本申请对此不进行限定。
步骤s102,根据所述目标放大倍数d0确定插值放大倍数d和采样间距m。
可选的,在本申请中,步骤s102可以通过如下的方法实现。
判断所述目标放大倍数d0是否为整数;
如果所述放大倍数d0为整数,则所述插值放大倍数d=d0,所述采样间距m=1。
如果所述目标放大倍数d0为小数,且
如果所述目标放大倍数d0为小数,且
在本实施例中,当目标放大倍数d0=1.25时:
插值放大倍数
采样间距
可选的,在本申请中,步骤s102也可以根据所述目标放大倍数d0从预设的第一参数列表中查找所述插值放大倍数d和所述采样间距m,所述第一参数列表包括所述目标放大倍数d0与所述插值放大倍数d和所述采样间距m的对应关系。
步骤s103,根据原图像的像素a×b和目标放大倍数d0,确定目标放大图像的所有目标像素点的目的坐标(ki,kj),其中,
在本实施例中,根据原图像的像素4×4,确定目标放大图像的所有目标像素点的目的坐标为(ki,kj),其中,ki=1,2,......,5;kj=1,2,......,5。
步骤s104,根据所述插值放大倍数d、所述采样间距m和所述目的坐标(ki,kj),通过步骤s1-s3计算所有目标像素点的像素值。请参见图4。
s1依次计算所有目标像素点在插值图框中的插值坐标;当任意一个所述目标像素点的插值坐标确定后,将所述插值坐标输送至步骤s2。
所述插值图框的像素值为da×db,其中da为所述插值图框每一行像素点的个数,db为所述插值图框每一列像素点的个数。
计算所述目标像素点在插值图框中的插值坐标
在本实施例中,所述插值图框的像素值为20×20,具体请参见图5。以目的坐标为(2,3)的目标像素点为例,所述目标像素点的插值坐标的横坐标xi=1+(ki-1)·m=1+(2-1)·4=5;纵坐标ykj=1+(kj-1)·m=1+(3-1)·4=9。所以所述目标像素点在插值图框中的坐标为(5,9)。
依次按照上述方法计算每一个目标像素点在插值图框中的插值坐标,当任意一个目标像素点的插值坐标确定后,将所述插值坐标输送至步骤s2。随后,继续依次计算剩余的目标像素点所对应的插值坐标,当其中任意一个目标像素点的插值坐标确定后,再将所述插值坐标输送至步骤s2。依次执行上述步骤,直至计算完所有的目标像素点的插值坐标。
可选的,所述插值坐标携带有标识信息,所述标识信息用于指示所述插值坐标对应的目标像素点。可选的,在本申请中,所述标识信息为所述目标像素点的目的坐标。
值得说明的是,在本申请所提供方法的实际运行过程中,并不生成所述插值图框,也并不计算所述插值图框中各个像素点的像素值,仅仅只是借助所述插值图框的结构框架来辅助执行步骤s2。
s2依次根据所述插值坐标计算所述所有目标像素点在所述原图像中的相关原像素点坐标;当任意一个所述目标像素点的相关原像素点坐标确定之后,将所述相关原像素点坐标输送至步骤s3。
计算目标像素点在原图像中的相关原像素点坐标包括:采用第一公式
在本实施例中,以目的坐标为(2,3)的目标像素点为例,第一公式
依次按照上述方法计算每一个目标像素点在原图像中的相关原像素点坐标,当任意一个目标像素点的相关原像素点坐标确定后,将所述相关原像素点坐标输送至步骤s3。随后,继续依次计算剩余的目标像素点所对应的相关原像素点坐标,当其中任意一个目标像素点的相关原像素点坐标确定后,再将所述相关原像素点坐标输送至步骤s3。依次执行上述步骤,直至计算完所有的目标像素点的相关原像素点坐标。
可选的,所述插值坐标携带有标识信息,所述标识信息用于指示所述插值坐标对应的目标像素点。可选的,在本申请中,所述标识信息为所述目标像素点的目的坐标。
s3依次根据所述相关原像素点坐标和所述相关原像素点的像素值,确定所述所有目标像素点的像素值。
在所述步骤中,根据r1、r2和插值放大倍数d确定原图像中所述目标像素点(ki,kj)与(q1+1,q2+1)的横向距离dx和纵向距离dy,
或者,根据r1、r2和所述插值放大倍数d,从预设的第二参数列表中查找所述横向距离dx和纵向距离dy;所述第二参数列表包括r1、r2、d与dx和dy的对应关系。
在本实施例中,所述目的坐标为(2,3)的像素点的与相关原像素点坐标(1,2)的横向距离
本申请可以通过双线性插值算法、线性插值、小波算法等多种算法计算目标像素点的像素值,本申请对此并不进行限制。在本实施例中,根据双线性插值算法计算目标像素点的像素值,具体如下所示。
获取目标像素点在原图像中的四个相关原像素点(1,2)、(1,3)、(2,3)和(2,4),以及这四个相关原像素点对应的像素值i1、i2、i3和i4。
目的坐标为(2,3)的目标像素点所对应的像素值为:
i(2,3)=(1-dx)·(1-dy)·i1+dx·(1-dy)·i2+(1-dx)·dy·i3+dx·dy·i4
在本实施例中每一个点的像素值可以为rgb(redgreenblue,红绿蓝)值,rgb色彩模式是工业界的一种颜色标准,是通过对红、绿、蓝三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的。当然,该像素值也可以为表示图像像素的其他形式的数值,本申请对此不进行限制。
可选的,所述像素值携带有标识信息,所述标识信息用于指示所述像素值对应的目标像素点。可选的,在本申请中,所述标识信息为所述目标像素点的目的坐标。
值得注意的是,在步骤s1-步骤s3中,每一个步骤仍然采用流式数据处理的模式。例如,步骤s1包括多个计算进程,并且所有的数据需要依次执行所有所述计算进程。当任意一个数据执行其中一个计算进程之后,进入下一进程。依次执行上述进程,直至所有数据执行完步骤s1中所有的计算进程。
步骤s105,当获取所有目标像素点的像素值时,生成目标放大图像。
将步骤s104中获得的每一个目标像素点的像素值与目标像素点匹配之后,即可生成目标放大图像。在本实施例中,可以通过所述像素值的标识信息与目标像素点进行匹配,生成目标放大图像。
综上所述,本申请提供的方法数据运算效率高、运算时间较短,对终端硬件资源的消耗较小,有利于保持终端的运行速度,延长终端的使用寿命。
实施例2:
本申请实施例提供一种基于流式数据处理的图像放大终端,包括:
信息获取单元,用于获取原图像和所述原图像的目标放大倍数d0,d0>1,所述原图像的像素为a×b,a为所述原图像每一行像素点的个数;b为所述原图像每一列像素点的个数;
第一确定单元,用于根据所述目标放大倍数d0确定插值放大倍数d和采样间距m;
第二确定单元,用于根据原图像的像素a×b和目标放大倍数d0,确定目标放大图像的所有目标像素点的目的坐标(ki,kj),其中,
数据处理单元,用于根据所述插值放大倍数d、所述采样间距m和所述目的坐标(ki,kj),通过步骤s1-s3计算所有目标像素点的像素值:
s1依次计算所有目标像素点在插值图框中的插值坐标;当任意一个所述目标像素点的插值坐标确定后,将所述插值坐标输送至步骤s2;
s2依次根据所述插值坐标计算所述所有目标像素点在所述原图像中的相关原像素点坐标;当任意一个所述目标像素点的相关原像素点坐标确定之后,将所述相关原像素点坐标输送至步骤s3;
s3依次根据所述相关原像素点坐标和所述相关原像素点的像素值,确定所述所有目标像素点的像素值;
图像生成单元,用于当获取所有目标像素点的像素值时,生成目标放大图像。
可选的,所述第一确定单元,还用于:
判断所述目标放大倍数d0是否为整数;
如果所述放大倍数d0为整数,则所述插值放大倍数d=d0,所述采样间距m=1;
如果所述目标放大倍数d0为小数,且
如果所述目标放大倍数d0为小数,且
可选的,所述第一确定单元,还用于根据所述目标放大倍数d0从预设的第一参数列表中查找所述插值放大倍数d和所述采样间距m,所述第一参数列表包括所述目标放大倍数d0与所述插值放大倍数d和所述采样间距m的对应关系。
可选的,所述数据处理单元,还用于计算所述目标像素点在插值图框中的插值坐标
可选的,所述数据处理单元,还用于:
采用第一公式
根据q1和q2确定所述原图像中与所述目标像素点(ki,kj)相邻的四个相关原像素点:(q1+1,q2+1)、(q1+1,q2+2)、(q1+2,q2+1)和(q1+2,q2+2);
可选的,所述数据处理单元,还用于:
根据r1、r2和插值放大倍数d确定所述目标像素点(ki,kj)与(q1+1,q2+1)的横向距离dx和纵向距离dy;
所述横向距离
或者,根据r1、r2和所述插值放大倍数d,从预设的第二参数列表中查找所述横向距离dx和纵向距离dy;所述第二参数列表包括r1、r2、d与dx和dy的对应关系。
可选的,所述目标像素点对应的插值坐标、相关原像素点坐标和像素值携带有标识信息,所述标识信息用于指示所述插值坐标、相关原像素点坐标和所述像素值对应的目标像素点。
需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的内容,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。