一种图像填充方法及系统与流程

文档序号:11232010阅读:409来源:国知局
一种图像填充方法及系统与流程

本发明属于图像处理技术领域,具体涉及一种图像填充方法及系统。



背景技术:

一般来说在进行视频采集时,直接采集到的视频数据是rgb24的格式,在采集到rgb24数据后,需要对这个格式的数据进行压缩,即可以将图像的颜色空间由rgb24转化为i420,以减少图像的数据量。

i420格式中每个像素点的色彩由y、u、v三个分量组成,其中“y”表示明亮度(luminance),也就是灰阶值;而“u”和“v”表示的则是色度(chrominance或chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。具体到计算机存储,每个像素点的y、u、v分量值都各用一个字节来存储,值的范围为0~255。i420格式的图像为了节约存储空间,每相邻的四个像素点共用一个u分量值和一个v分量值,因此每相邻的四个像素点就只需要4+1+1个字节来存储色彩信息。一副像素为x*y(x为宽,即像素列数,y为高,即像素行数)大小的图像,需要x*y+x*y/4+x*y/4个字节的存储空间来存储,其中前x*y个字节用于存储各个像素点的y分量值,紧随其后的x*y/4个字节用于存储各个像素点的u分量值,最后的x*y/4个字节用于存储各个像素点的v分量值。例如,如图1所示的一副像素为4*4大小的图像,图中的①、②、③、④、⑤、⑥、⑦、⑧、⑨、⑩、分别表示16个像素点,该图像以i420格式的存储的y、u、v分量值格式为:y1y2y3y4y5y6y7y8y9y10y11y12y13y14y15y16u1u2u3u4v1v2v3v4,其中,u1表示①、②、⑤、⑥四个像素点共用的u分量值,u2表示③、④、⑦、⑧四个像素点共用的u分量值,u3表示⑨、⑩、四个像素点共用的u分量值,u4表示四个像素点共用的u分量值。v1、v2、v3、v4表示的意义与u1、u2、u3、u4类似。另外,这里所说的计算机里处理的图像像素的行数、列数都是偶数。

目前将一副图案(或图像)填充到另一幅图像的填充方法,是在确定了需要填充的区域内某一像素之后,先查询填充图案的对应像素点和该像素点的y、u、v三个分量值,再查寻该像素点的y、u、v三个分量值相对应的存储区域,然后在相对应的存储区域中写上该像素点的y、u、v三个分量值。这样逐个像素地进行确定、查询、存储等步骤,流程复杂、效率较低。



技术实现要素:

为了解决上述技术问题,本发明提供一种图像填充方法及系统,可用于图像处理填充,以使图像填充流程简单、实用,并很大程度地提高图像填充的效率。

本发明采用如下技术方案:

一方面,本发明提供一种图像填充方法,其包括以下步骤:

将第一图像的所有像素点的y分量值覆盖第二图像的y分量值原始存储区域中的对应像素点的y分量值;

将所述第一图像的所有像素点的u分量值覆盖所述第二图像的u分量值原始存储区域中的对应像素点的u分量值;

将所述第一图像的所有像素点的v分量值覆盖所述第二图像的v分量值原始存储区域中的对应像素点的v分量值。

另一方面,本发明还提供一种图像填充系统,其包括:

y分量值覆盖模块,用于将第一图像的所有像素点的y分量值覆盖第二图像的y分量值原始存储区域中的对应像素点的y分量值;

u分量值覆盖模块,用于将所述第一图像的所有像素点的u分量值覆盖所述第二图像的u分量值原始存储区域中的对应像素点的u分量值;

v分量值覆盖模块,用于将所述第一图像的所有像素点的v分量值覆盖所述第二图像的v分量值原始存储区域中的对应像素点的v分量值。

本发明实施例中的图像填充方法,采取的是将第一图像的所有像素点的y分量值、u分量值和v分量值分别覆盖第二图像的y分量值、u分量值和v分量值,具体可以是:将第一图像的所有像素点的y分量值覆盖第二图像的y分量值原始存储区域中的对应像素点的y分量值之后,再将所述第一图像的所有像素点的u分量值覆盖所述第二图像的u分量值原始存储区域中的对应像素点的u分量值,最后,将所述第一图像的所有像素点的v分量值覆盖所述第二图像的v分量值原始存储区域中的对应像素点的v分量值。当然,y分量值、u分量值、v分量值覆盖的先后顺序可以调换。即通过该方法,可将第一图像中每个像素点y分量值、u分量值和v分量值存储到第二图像的相应存储区域中,完成将第一图像的填充到第二图像的相应位置中,其不需要逐个像素地进行确定、查询、存储等步骤,流程简单、实用,可以很大程度地提高图像填充的效率。

附图说明

图1为本发明列举的一副像素为4*4大小的图像示范图。

图2为本发明一优选实施例中的图像填充方法的流程图。

图3为本发明另一优选实施例中的图像填充方法的部分流程图。

图4为本发明另一优选实施例中的图像填充方法的部分流程图。

图5为本发明一优选实施例中的多方实时视频拼接录制方法的流程图。

图6为本发明一优选实施例中的图像填充系统的结构图。

图7为本发明另一优选实施例中的图像填充系统的部分结构图。

图8为本发明另一优选实施例中的图像填充系统的部分结构图。

图9为本发明一优选实施例中的多方实时视频拼接录制装置的结构图。

具体实施方式

为了更加清楚地了解本发明的技术方案,下面结合附图对本发明进行详细介绍。本发明的实施例具有示例性的作用,本领域技术人员在本发明实施例基础上做出的无实质性的改进,都应属于本发明的保护范围。

如图2所示的图像填充方法,其包括以下步骤:

s101:将第一图像的所有像素点的y分量值覆盖第二图像的y分量值原始存储区域中的对应像素点的y分量值。

在进行图像填充之前,且获取所述第一图像、第二图像后,若所述第一图像、第二图像的存储格式不是i420,需将其转化为i420。所述第二图像的y分量值原始存储区域,是指在将所述第一图像填充到所述第二图像之前,已经存储所述第二图像中所有像素点的y分量值、且将所述第一图像填充到所述第二图像之后存储所述第一图像中所有像素点的y分量值和第二图像中部分像素点的y分量值的存储区域。

在将第一图像的所有像素点的y分量值覆盖第二图像的y分量值原始存储区域中的对应像素点的y分量值之前,还包括确定所述第二图像中被所述第一图像填充的具体区域。所述对应像素点的y分量值,是指所述第二图像中被填充的具体区域上的像素点的y分量值。

所述第一图像的所有像素点的y分量值,是按照预定的排列顺序覆盖第二图像的y分量值原始存储区域中的对应像素点的y分量值。所述预定的排列顺序可以是所述第一图像的所有像素点的y分量值原来的排列顺序,也可以是根据需要进行调整过的排列顺序。

s102:将所述第一图像的所有像素点的u分量值覆盖所述第二图像的u分量值原始存储区域中的对应像素点的u分量值。

所述第二图像的u分量值原始存储区域,是指在将所述第一图像填充到所述第二图像之前,已经存储所述第二图像中所有像素点的u分量值、且将所述第一图像填充到所述第二图像之后存储所述第一图像中所有像素点的u分量值和第二图像中部分像素点的u分量值的存储区域。

在将第一图像的所有像素点的u分量值覆盖第二图像的u分量值原始存储区域中的对应像素点的u分量值之前,还包括确定所述第二图像中被所述第一图像填充的具体区域。所述对应像素点的u分量值,是指所述第二图像中被填充的具体区域上的像素点的u分量值。

所述第一图像的所有像素点的u分量值,是按照预定的排列顺序覆盖第二图像的u分量值原始存储区域中的对应像素点的u分量值。所述预定的排列顺序可以是所述第一图像的所有像素点的u分量值原来的排列顺序,也可以是根据需要进行调整过的排列顺序。

s103:将所述第一图像的所有像素点的v分量值覆盖所述第二图像的v分量值原始存储区域中的对应像素点的v分量值。

所述第二图像的v分量值原始存储区域,是指在将所述第一图像填充到所述第二图像之前,已经存储所述第二图像中所有像素点的v分量值、且将所述第一图像填充到所述第二图像之后存储所述第一图像中所有像素点的v分量值和第二图像中部分像素点的v分量值的存储区域。

在将第一图像的所有像素点的v分量值覆盖第二图像的v分量值原始存储区域中的对应像素点的v分量值之前,还包括确定所述第二图像中被所述第一图像填充的具体区域。所述对应像素点的v分量值,是指所述第二图像中被填充的具体区域上的像素点的v分量值。

所述第一图像的所有像素点的v分量值,是按照预定的排列顺序覆盖第二图像的v分量值原始存储区域中的对应像素点的v分量值。所述预定的排列顺序可以是所述第一图像的所有像素点的v分量值原来的排列顺序,也可以是根据需要进行调整过的排列顺序。

本发明实施例的图像填充方法只是示例性说明,实际过程中步骤s101、s102、s103的顺序是可以调换的。

本发明实施例中的图像填充方法,采取的是将第一图像的所有像素点的y分量值、u分量值和v分量值分别覆盖第二图像的y分量值、u分量值和v分量值,具体可以是:将第一图像的所有像素点的y分量值覆盖第二图像的y分量值原始存储区域中的对应像素点的y分量值之后,再将所述第一图像的所有像素点的u分量值覆盖所述第二图像的u分量值原始存储区域中的对应像素点的u分量值,最后,将所述第一图像的所有像素点的v分量值覆盖所述第二图像的v分量值原始存储区域中的对应像素点的v分量值。当然,y分量值、u分量值、v分量值覆盖的先后顺序可以调换。即通过该方法,可将第一图像中每个像素点y分量值、u分量值和v分量值存储到第二图像的相应存储区域中,完成将第一图像的填充到第二图像的相应位置中,其不需要逐个像素地进行确定、查询、存储等步骤,流程简单、实用,可以很大程度地提高图像填充的效率。

基于图2所示的图像填充方法,优选的是,假设所述第一图像的像素为e1行、f1列,所述第二图像的像素为e2行、f2列,其中1≤e1≤e2、1≤f1≤f2,且e1、e2、f1、f2均为正整数;所述将第一图像的所有像素点的y分量值覆盖第二图像的y分量值原始存储区域中的对应像素点的y分量值,包括:

s201:确定所述第一图像的第一行像素的第一个像素点在所述第二图像上的位置为第i行、第j列,其中1≤i≤e2-e1+1、1≤j≤f2-f1+1;

s202:将所述第一图像的第k行像素的f1个像素点的y分量值按照顺序覆盖第二图像中y分量值原始存储区域中对应的第i+k-1行像素中的f1个像素点的y分量值,且覆盖的起始像素点为第i+k-1行、第j列,终止像素点为第i+k-1行、第j+f1-1列;其中1≤k≤e1,且k为正整数。

本发明实施例中的e1、e2、f1、f2、i、j、k均为正整数。所述确定所述第一图像的第一行像素的第一个像素点在所述第二图像上的位置为第i行、第j列之后,若第一图像不进行旋转,通常是可以确定所述第二图像中被所述第一图像填充的具体区域。本发明实施例中第一图像不进行旋转。

本发明实施例中,所述将所述第一图像的第k行像素的f1个像素点的y分量值按照顺序覆盖第二图像中y分量值原始存储区域中对应的第i+k-1行像素中的f1个像素点的y分量值,是按照第一图像中第k行像素的f1个像素点的排列顺序与第二图像中y分量值原始存储区域中对应的第i+k-1行像素中的f1个像素点的y分量值的排列顺序进行覆盖。若第一图像的像素e1为4行、f1为4列,第二图像的像素e2为10行、f2为8列,且第一图像的第一行像素的4个像素点的排列顺序为第1像素点、第2像素点、第3像素点、第4像素点,第二图像的第五行的8个像素点的排列顺序为第1′像素点、第2′像素点、第3′像素点、第4′像素点、第5′像素点、第6′像素点、第7′像素点、第8′像素点,如果确定第一图像的第一行像素的第一个像素点在第二图像上的位置为第i为5行、第j为2列,则将第一图像的第一行像素的4个像素点的y分量值按照顺序覆盖第二图像中y分量值原始存储区域中对应的第5行像素中的4个像素点的y分量值,是按照第一图像中第一行像素的4个像素点的排列顺序与第二图像中y分量值原始存储区域中对应的第五行像素中的4个像素点的y分量值的排列顺序进行覆盖,即是将第一图像的第一行像素的4个像素点的y分量值按照第1像素点、第2像素点、第3像素点、第4像素点的顺序覆盖第二图像中y分量值原始存储区域中对应的第五行像素中的第2′像素点、第3′像素点、第4′像素点、第5′像素点的y分量值。

本发明实施例中,所述确定所述第一图像的第一行像素的第一个像素点在所述第二图像上的位置为第i行、第j列之后;首先将所述第一图像的第一行像素的f1个像素点的y分量值按照顺序覆盖第二图像中y分量值原始存储区域中对应的第i行像素中的f1个像素点的y分量值,且覆盖的起始像素点为第i行、第j列,终止像素点为第i行、第j+f1-1列;然后,将所述第一图像的第二行像素的f1个像素点的y分量值按照顺序覆盖第二图像中y分量值原始存储区域中的对应的第i+1行像素中的f1个像素点的y分量值,且覆盖的起始像素点为第i+1行、第j列,终止像素点为第i+1行、第j+f1-1列;之后,将所述第一图像的第三行像素的f1个像素点的y分量值按照顺序覆盖第二图像中y分量值原始存储区域中对应的第i+2行像素中的f1个像素点的y分量值,且覆盖的起始像素点为第i+2行、第j列,终止像素点为第i+2行、第j+f1-1列;以此类推,直到将所述第一图像的第e1行像素的f1个像素点的y分量值按照顺序覆盖第二图像中y分量值原始存储区域中的对应的第i+e1-1行像素中的f1个像素点的y分量值,且覆盖的起始像素点为第i+e1-1行、第j列,终止像素点为第i+e1-1行、第j+f1-1列。

具体地,若第一图像的像素e1为4行、f1为4列,第二图像的像素e2为10行、f1为8列,且第一图像的第一行像素的第一个像素点在所述第二图像上的位置第i为5行、第j为2列。首先,将所述第一图像的第一行像素的4个像素点的y分量值按照顺序覆盖第二图像中y分量值原始存储区域中对应的第5行像素中的4个像素点的y分量值,且覆盖的起始像素点为第5行、第2列,终止像素点为第5行、第5列;然后,将所述第一图像的第二行像素的4个像素点的y分量值按照顺序覆盖第二图像中y分量值原始存储区域中的对应的第6行像素中的4个像素点的y分量值,且覆盖的起始像素点为第6行、第2列,终止像素点为第6行、第5列;之后,将所述第一图像的第三行像素的4个像素点的y分量值按照顺序覆盖第二图像中y分量值原始存储区域中对应的第7行像素中的4个像素点的y分量值,且覆盖的起始像素点为第7行、第2列,终止像素点为第7行、第5列;最后,将所述第一图像的第四行像素的4个像素点的y分量值按照顺序覆盖第二图像中y分量值原始存储区域中对应的第8行像素中的4个像素点的y分量值,且覆盖的起始像素点为第8行、第2列,终止像素点为第8行、第5列。

本发明实施例的图像填充方法,可以将第一图像的像素点的y分量值以行为单位覆盖第二图像的y分量值原始存储区域中的对应像素点的y分量值,直到将第一图像的所有像素点的y分量值覆盖第二图像的y分量值原始存储区域中的对应像素点的y分量值,其不需要逐个像素地进行确定、查询、存储等步骤,流程更简单、实用,可以很大程度地提高图像填充的效率。

基于图2所示的图像填充方法,如图3所示,所述将所述第一图像的所有像素点的u分量值覆盖所述第二图像的u分量值原始存储区域中的对应像素点的u分量值,包括:

s301:配置第一图像的u分量值新存储区域,使该第一图像的u分量值新存储区域的可用区域的大小不小于该第一图像的所有像素点的y分量值所占用的存储区域,并将该第一图像的每相邻四个像素点对应的一个u分量值扩展成相应的四个u分量值,使该扩展后的u分量值与所述第一图像的像素点一一对应,然后,将该扩展后的u分量值存储到该第一图像的u分量值新存储区域中。

所述配置第一图像的u分量值新存储区域,可以是新创建的存储区域,也可以是将现有的存储区域进行扩展之后的存储区域,目的是使该第一图像的u分量值新存储区域的可用区域的大小不小于该第一图像的所有像素点的y分量值所占用的存储区域,以便于将扩展后的u分量值存储到该第一图像的u分量值新存储区域中。

所述将该第一图像的每相邻四个像素点对应的一个u分量值扩展成相应的四个u分量值,一般扩展后的每个u分量值和扩展之前的u分量值大小相同。例如:若u1表示①、②、⑤、⑥四个像素点共用的u分量值,则经扩展后得到4个u1,分别与①、②、⑤、⑥四个像素点一一对应。

所述将该扩展后的u分量值存储到该第一图像的u分量值新存储区域中之后,该第一图像的u分量值新存储区域中的u分量值的数目与该第一图像的像素点的数目相同。

s302:配置第二图像的u分量值新存储区域,使该第二图像的u分量值新存储区域的可用区域的大小不小于该第二图像的所有像素点的y分量值所占用的存储区域,并将该第二图像的每相邻四个像素点对应的一个u分量值扩展成相应的四个u分量值,使该扩展后的u分量值与所述第二图像的像素点一一对应,然后,将该扩展后的u分量值存储到该第二图像的u分量值新存储区域中。

所述配置第二图像的u分量值新存储区域,可以是新创建的存储区域,也可以是将现有的存储区域进行扩展之后的存储区域,目的是使该第二图像的u分量值新存储区域的可用区域的大小不小于该第二图像的所有像素点的y分量值所占用的存储区域,以便于将扩展后的u分量值存储到该第二图像的u分量值新存储区域中。

所述将该第二图像的每相邻四个像素点对应的一个u分量值扩展成相应的四个u分量值,一般扩展后的每个u分量值和扩展之前的u分量值大小相同。

所述将该扩展后的u分量值存储到该第二图像的u分量值新存储区域中之后,该第二图像的u分量值新存储区域中的u分量值的数目与该第二图像的像素点的数目相同。

s303:将所述第一图像扩展后的所有像素点的u分量值覆盖所述第二图像的u分量值新存储区域中对应像素点的已扩展的u分量值。

因为扩展后的u分量值与y分量值一样,与像素点是一一对应的。因此,可以利用上述的将第一图像的所有像素点的y分量值覆盖第二图像的y分量值原始存储区域中的对应像素点的y分量值的方法,将所述第一图像扩展后的所有像素点的u分量值覆盖所述第二图像的u分量值新存储区域中对应像素点的已扩展的u分量值。

s304:把第二图像的u分量值新存储区域中的所有像素点的u分量值按照第二图像的像素点的排列状况,将每相邻四个像素点的u分量值取一个平均值,得到一组新u分量值。

所述平均值可以是算数平均值或者是加权平均值,根据不同需求进行选择。

s305:将该组新u分量值覆盖所述第二图像的u分量值原始存储区域中对应像素点的u分量值。

例如:第一图像的像素e1为4行、f1为4列,且第一图像的像素点分别为①②③④⑤⑥⑦⑧⑨⑩u1表示①、②、⑤、⑥四个像素点共用的u分量值,u2表示③、④、⑦、⑧四个像素点共用的u分量值,u3表示⑨、⑩、四个像素点共用的u分量值,u4表示四个像素点共用的u分量值。第二图像的像素e2为4行、f2为4列,且第二图像的像素点分别为①′②′③′④′⑤′⑥′⑦′⑧′⑨′⑩′u1′表示①′、②′、⑤′、⑥′四个像素点共用的u分量值,u2′表示③′、④′、⑦′、⑧′四个像素点共用的u分量值,u3′表示⑨′、⑩′、四个像素点共用的u分量值,u4′表示四个像素点共用的u分量值。

将扩展后的u分量值存储到第一图像的u分量值新存储区域中之后,第一图像的u分量值新存储区域中的u分量值存储为:u1u1u2u2u1u1u2u2u3u3u4u4u3u3u4u4。将扩展后的u分量值存储到第二图像的u分量值新存储区域中之后,第二图像的u分量值新存储区域中的u分量值存储为:u1′u1′u2′u2′u1′u1′u2′u2′u3′u3′u4′u4′u3′u3′u4′u4′。

将第一图像扩展后的所有像素点的u分量值覆盖第二图像的u分量值新存储区域中对应像素点的已扩展的u分量值之后,第二图像的u分量值新存储区域中的u分量值存储为:u1u1u2u2u1u1u2u2u3u3u4u4u3u3u4u4。

把第二图像的u分量值新存储区域中的所有像素点的u分量值按照第二图像的像素点的排列状况,将每相邻四个像素点的u分量值取一个算术平均值,得到一组新u分量值为u1u2u3u4。

将该组新u分量值覆盖所述第二图像的u分量值原始存储区域中对应像素点的u分量值之后,所述第二图像的u分量值原始存储区域中对应像素点的u分量值为u1u2u3u4。即完成了将所述第一图像的所有像素点的u分量值覆盖所述第二图像的u分量值原始存储区域中的对应像素点的u分量值。

本发明实施例中的图像填充方法,通过配置第一图像的u分量值新存储区域和第二图像的u分量值新存储区域,可以将第一图像扩展后的所有像素点的u分量值以行为单位覆盖第二图像的u分量值新存储区域中对应像素点的已扩展的u分量值,并提取一组新u分量值,进而可以将该组新u分量值覆盖第二图像的u分量值原始存储区域中对应像素点的u分量值,即可将第一图像的所有像素点的u分量值覆盖第二图像的u分量值原始存储区域中的对应像素点的u分量值。该方法流程更简单、实用,可以很大程度地提高图像填充的效率。

基于图2所示的图像填充方法,如图4所示,所述将所述第一图像的所有像素点的v分量值覆盖所述第二图像的v分量值原始存储区域中的对应像素点的v分量值,包括:

s401:配置第一图像的v分量值新存储区域,使该第一图像的v分量值新存储区域的可用区域的大小不小于该第一图像的所有像素点的y分量值所占用的存储区域,并将该第一图像的每相邻四个像素点对应的一个v分量值扩展成相应的四个v分量值,使该扩展后的v分量值与所述第一图像的像素点一一对应,然后,将该扩展后的v分量值存储到该第一图像的v分量值新存储区域中。

所述配置第一图像的v分量值新存储区域,可以是新创建的存储区域,也可以是将现有的存储区域进行扩展之后的存储区域,目的是使该第一图像的v分量值新存储区域的可用区域的大小不小于该第一图像的所有像素点的y分量值所占用的存储区域,以便于将扩展后的v分量值存储到该第一图像的v分量值新存储区域中。

所述将该第一图像的每相邻四个像素点对应的一个v分量值扩展成相应的四个v分量值,一般扩展后的每个v分量值和扩展之前的v分量值大小相同。例如:若v1表示①、②、⑤、⑥四个像素点共用的v分量值,则经扩展后得到4个v1,分别与①、②、⑤、⑥四个像素点一一对应。

所述将该扩展后的v分量值存储到该第一图像的v分量值新存储区域中之后,该第一图像的v分量值新存储区域中的v分量值的数目与该第一图像的像素点的数目相同。

s402:配置第二图像的v分量值新存储区域,使该第二图像的v分量值新存储区域的可用区域的大小不小于该第二图像的所有像素点的y分量值所占用的存储区域,并将该第二图像的每相邻四个像素点对应的一个v分量值扩展成相应的四个v分量值,使该扩展后的v分量值与所述第二图像的像素点一一对应,然后,将该扩展后的v分量值存储到该第二图像的v分量值新存储区域中。

所述配置第二图像的v分量值新存储区域,可以是新创建的存储区域,也可以是将现有的存储区域进行扩展之后的存储区域,目的是使该第二图像的v分量值新存储区域的可用区域的大小不小于该第二图像的所有像素点的y分量值所占用的存储区域,以便于将扩展后的v分量值存储到该第二图像的v分量值新存储区域中。

所述将该第二图像的每相邻四个像素点对应的一个v分量值扩展成相应的四个v分量值,一般扩展后的每个v分量值和扩展之前的v分量值大小相同。

所述将该扩展后的v分量值存储到该第二图像的v分量值新存储区域中之后,该第二图像的v分量值新存储区域中的v分量值的数目与该第二图像的像素点的数目相同。

s403:将所述第一图像扩展后的所有像素点的v分量值覆盖所述第二图像的v分量值新存储区域中对应像素点的已扩展的v分量值。

因为扩展后的v分量值与y分量值一样,与像素点是一一对应的。因此,可以利用上述的将第一图像的所有像素点的y分量值覆盖第二图像的y分量值原始存储区域中的对应像素点的y分量值的方法,将所述第一图像扩展后的所有像素点的v分量值覆盖所述第二图像的v分量值新存储区域中对应像素点的已扩展的v分量值。

s404:把第二图像的v分量值新存储区域中的所有像素点的v分量值按照第二图像的像素点的排列情况,将每相邻四个像素点的v分量值取一个平均值,得到一组新v分量值。

所述平均值可以是算数平均值或者是加权平均,根据不同需求进行选择。

s405:将该组新v分量值覆盖所述第二图像的v分量值原始存储区域中对应像素点的v分量值。

本发明实施例中的图像填充方法,通过配置第一图像的v分量值新存储区域和第二图像的v分量值新存储区域,可以将第一图像扩展后的所有像素点的v分量值以行为单位覆盖第二图像的v分量值新存储区域中对应像素点的已扩展的v分量值,并提取一组新v分量值,进而可以将该组新v分量值覆盖第二图像的v分量值原始存储区域中对应像素点的v分量值,即可将第一图像的所有像素点的v分量值覆盖第二图像的v分量值原始存储区域中的对应像素点的v分量值。该方法流程更简单、实用,可以很大程度地提高图像填充的效率。

基于图2所示的图像填充方法,较佳的是,所述将第一图像的所有像素点的y分量值覆盖第二图像的y分量值原始存储区域中的对应像素点的y分量值之前,还包括:根据所述第一图像的原始图像以及所述第二图像,缩放所述第一图像的原始图像,得到第一缩放图像;且所述缩放所述第一图像的原始图像,包括:

假设所述第一图像的原始图像的宽为a、高为b,所述第二图像的宽为c、高为d;

如果a:b≥c:d,则将所述第一图像缩放为宽为c、高为c*b/a的第一缩放图像;

如果a:b≤c:d,则将所述第一图像缩放为宽为d*a/b、高为d的第一缩放图像。

所述缩放包括扩大和缩小。本发明实施例中的图像填充方法,通过对第一图像的原始图像的缩放,可以使第一图像保持图像比例地填充到第二图像中,且又能最大程度地填满第二图像。

作为本发明的图像填充方法的一种应用,如图5所示的多方实时视频拼接录制方法,其包括以下步骤:

s501:根据多方视频源的数量创建对应数量的子图像,并设定每个子图像的形状和像素值。

为了使所有子图像的大小一致、对称美观,通常将每个子图像的形状和像素值设定相同。子图像的形状和像素值具体是多少,可以根据视频源发送过来的视频图像的形状和像素值进行设定,原则是子图像的形状和像素值越接近视频源发送的视频图像越好,这样在将实时视频图像填充到子图像里后子图像空白的区域会比较小。

s502:根据已创建的子图像的数量以及每个子图像的形状和像素值创建对应的合成图像,所述合成图像的像素值大于或等于已创建的全部子图像的像素值之和。

所述合成图像的像素值通常是等于已创建的全部子图像的像素值之和,且所述合成图像的形状通常是已创建的全部子图像可以以某种方式组合而成的形状。这样,可以将已创建的子图像直接填充到所述合成图像中相应的区域中,既可以完成全部子图像的拼接,又使合成图像没有多余的空白区域。

s503:接收所述多方视频源发送的实时视频图像。

s504:把每个实时视频图像利用本发明实施例中所述的图像填充方法分别填充到对应的子图像中。

填充后的子图像就是包含相应实时视频图像的实时视频子图像。每个视频源均可以实时发送一系列的实时视频图像,经过图像填充,就可以得到与每个视频源相对应的一系列的实时视频子图像。

s505:把填充有实时视频图像的每个子图像利用本发明实施例中所述的图像填充方法分别填充到所述合成图像中。

在合成图像中预先设定每个实时视频源对应的实时视频子图像的位置,然后利用本发明实施例中的图像填充方法,将每个实时视频子图像分别填充到合成图像中对应的位置。通过连续将与每个视频源相对应的一系列的实时视频子图像分别填充到合成图像中对应的位置,就可以完成多方实时视频的拼接录制。

所述把每个实时视频图像利用本发明实施例中所述的图像填充方法分别填充到对应的子图像中之前,通常还包括根据每个实时视频图像的原始图像以及对应的子图像,缩放实时视频图像的原始图像,得到相应的实时视频图像的缩放图像;且所述缩放实时视频图像的原始图像,包括:

假设实时视频图像的原始图像宽为a、高为b,与其对应的子图像的宽为c、高为d;

如果a:b≥c:d,则将该实时视频图像的原始图像缩放为宽为c、高为c*b/a的实时视频图像的缩放图像;

如果a:b≤c:d,则将该实时视频图像的原始图像缩放为宽为d*a/b、高为d的实时视频图像的缩放图像。

通过将实时视频图像的原始图像缩放为相应的缩放图像,然后将缩放图像填充到对应的子图像,再将被填充的子图像填充到合成图像的相应位置中。即可以把任意多方的视频图像保持图像比例地投射到一个由若干个大小相同的子图像组成的图像矩阵中,每方的视频图像都可占据一个大小相同的区域,使合成后的图像具有对称性,合成效果较为美观。

如图6所示的图像填充系统,其包括:

y分量值覆盖模块,用于将第一图像的所有像素点的y分量值覆盖第二图像的y分量值原始存储区域中的对应像素点的y分量值;

u分量值覆盖模块,用于将所述第一图像的所有像素点的u分量值覆盖所述第二图像的u分量值原始存储区域中的对应像素点的u分量值;

v分量值覆盖模块,用于将所述第一图像的所有像素点的v分量值覆盖所述第二图像的v分量值原始存储区域中的对应像素点的v分量值。

本发明实施例中的图像填充系统,可用于实现上述的图像填充方法,其采取y分量值覆盖模块、u分量值覆盖模块、v分量值覆盖模块,可以将第一图像的所有像素点的y分量值、u分量值和v分量值分别覆盖第二图像的y分量值、u分量值和v分量值。具体可以是:将第一图像的所有像素点的y分量值覆盖第二图像的y分量值原始存储区域中的对应像素点的y分量值之后,再将所述第一图像的所有像素点的u分量值覆盖所述第二图像的u分量值原始存储区域中的对应像素点的u分量值,最后,将所述第一图像的所有像素点的v分量值覆盖所述第二图像的v分量值原始存储区域中的对应像素点的v分量值。当然,y分量值、u分量值、v分量值覆盖的先后顺序可以调换。即通过该系统,可将第一图像中每个像素点y分量值、u分量值和v分量值存储到第二图像的相应存储区域中,完成将第一图像的填充到第二图像的相应位置中,其不需要逐个像素地进行确定、查询、存储等步骤,流程简单、实用,可以很大程度地提高图像填充的效率。

基于图6所示的图像填充系统,优选的是,假设所述第一图像的像素为e1行、f1列,所述第二图像的像素为e2行、f2列,其中1≤e1≤e2、1≤f1≤f2,且e1、e2、f1、f2均为正整数;所述y分量值覆盖模块包括:

位置确定单元,用于确定所述第一图像的第一行像素的第一个像素点在所述第二图像上的位置为第i行、第j列,其中1≤i≤e2-e1+1、1≤j≤f2-f1+1;

y分量值行覆盖单元,用于将所述第一图像的第k行像素的f1个像素点的y分量值按照顺序覆盖第二图像中y分量值原始存储区域中对应的第i+k-1行像素中的f1个像素点的y分量值,且覆盖的起始像素点为第i+k-1行、第j列,终止像素点为第i+k-1行、第j+f1-1列;其中1≤k≤e1,且k为正整数。

本发明实施例的图像填充系统,可以将第一图像的像素点的y分量值以行为单位覆盖第二图像的y分量值原始存储区域中的对应像素点的y分量值,直到将第一图像的所有像素点的y分量值覆盖第二图像的y分量值原始存储区域中的对应像素点的y分量值,其不需要逐个像素地进行确定、查询、存储等步骤,流程更简单、实用,可以很大程度地提高图像填充的效率。

基于图6所示的图像填充系统,如图7所示,所述u分量值覆盖模块包括:

第一u分量值扩展单元,用于配置第一图像的u分量值新存储区域,使该第一图像的u分量值新存储区域的可用区域的大小不小于该第一图像的所有像素点的y分量值所占用的存储区域,并将该第一图像的每相邻四个像素点对应的一个u分量值扩展成相应的四个u分量值,使该扩展后的u分量值与所述第一图像的像素点一一对应,然后,将该扩展后的u分量值存储到该第一图像的u分量值新存储区域中;

第二u分量值扩展单元,用于配置第二图像的u分量值新存储区域,使该第二图像的u分量值新存储区域的可用区域的大小不小于该第二图像的所有像素点的y分量值所占用的存储区域,并将该第二图像的每相邻四个像素点对应的一个u分量值扩展成相应的四个u分量值,使该扩展后的u分量值与所述第二图像的像素点一一对应,然后,将该扩展后的u分量值存储到该第二图像的u分量值新存储区域中;

第一u分量值覆盖单元,用于将所述第一图像扩展后的所有像素点的u分量值覆盖所述第二图像的u分量值新存储区域中对应像素点的已扩展的u分量值;

u分量值平均单元,用于把第二图像的u分量值新存储区域中的所有像素点的u分量值按照第二图像的像素点的排列状况,将每相邻四个像素点的u分量值取一个平均值,得到一组新u分量值;

第二u分量值覆盖单元,用于将该组新u分量值覆盖所述第二图像的u分量值原始存储区域中对应像素点的u分量值。

本发明实施例中的图像填充系统,通过配置第一图像的u分量值新存储区域和第二图像的u分量值新存储区域,可以将第一图像扩展后的所有像素点的u分量值以行为单位覆盖第二图像的u分量值新存储区域中对应像素点的已扩展的u分量值,并提取一组新u分量值,进而可以将该组新u分量值覆盖第二图像的u分量值原始存储区域中对应像素点的u分量值,即可将第一图像的所有像素点的u分量值覆盖第二图像的u分量值原始存储区域中的对应像素点的u分量值。该系统更简单、实用,可以很大程度地提高图像填充的效率。

基于图6所示的图像填充系统,如图8所示,所述v分量值覆盖模块包括:

第一v分量值扩展单元,用于配置第一图像的v分量值新存储区域,使该第一图像的v分量值新存储区域的可用区域的大小不小于该第一图像的所有像素点的y分量值所占用的存储区域,并将该第一图像的每相邻四个像素点对应的一个v分量值扩展成相应的四个v分量值,使该扩展后的v分量值与所述第一图像的像素点一一对应,然后,将该扩展后的v分量值存储到该第一图像的v分量值新存储区域中;

第二v分量值扩展单元,用于配置第二图像的v分量值新存储区域,使该第二图像的v分量值新存储区域的可用区域的大小不小于该第二图像的所有像素点的y分量值所占用的存储区域,并将该第二图像的每相邻四个像素点对应的一个v分量值扩展成相应的四个v分量值,使该扩展后的v分量值与所述第二图像的像素点一一对应,然后,将该扩展后的v分量值存储到该第二图像的v分量值新存储区域中;

第一v分量值覆盖单元,用于将所述第一图像扩展后的所有像素点的v分量值覆盖所述第二图像的v分量值新存储区域中对应像素点的已扩展的v分量值;

v分量值平均单元,用于把第二图像的v分量值新存储区域中的所有像素点的v分量值按照第二图像的像素点的排列情况,将每相邻四个像素点的v分量值取一个平均值,得到一组新v分量值;

第二v分量值覆盖单元,用于将该组新v分量值覆盖所述第二图像的v分量值原始存储区域中对应像素点的v分量值。

基于图6所示的图像填充系统,较佳的是,其还包括缩放模块,用于将第一图像的所有像素点的y分量值覆盖第二图像的y分量值原始存储区域中的对应像素点的y分量值之前,根据所述第一图像的原始图像以及所述第二图像,缩放所述第一图像的原始图像,得到第一缩放图像;且所述缩放模块包括:

第一缩放单元,用于假设所述第一图像的原始图像的宽为a、高为b,所述第二图像的宽为c、高为d;如果a:b≥c:d,则将所述第一图像缩放为宽为c、高为c*b/a的第一缩放图像;

第二缩放单元,用于假设所述第一图像的原始图像的宽为a、高为b,所述第二图像的宽为c、高为d;如果a:b≤c:d,则将所述第一图像缩放为宽为d*a/b、高为d的第一缩放图像。

本发明实施例中的图像填充系统,通过对第一图像的原始图像的缩放,可以使第一图像保持图像比例地填充到第二图像中,且又能最大程度地填满第二图像。

如图9所示的多方实时视频拼接录制装置,其包括:

第一创建模块,用于根据多方视频源的数量创建对应数量的子图像,并设定每个子图像的形状和像素值;

第二创建模块,用于根据已创建的子图像的数量以及每个子图像的形状和像素值创建对应的合成图像,所述合成图像的像素值大于或等于已创建的全部子图像的像素值之和;

接收模块,用于接收所述多方视频源发送的实时视频图像;

第一填充模块,用于把每个实时视频图像利用本发明实施例中所述的图像填充系统分别填充到对应的子图像中;

第二填充模块,用于把填充有实时视频图像的每个子图像利用本发明实施例中所述的图像填充系统分别填充到所述合成图像中。

以上所述,仅为本发明的实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1