[go: up one dir, main page]

CN111476716B - 一种实时视频拼接方法和装置 - Google Patents

一种实时视频拼接方法和装置 Download PDF

Info

Publication number
CN111476716B
CN111476716B CN202010260631.2A CN202010260631A CN111476716B CN 111476716 B CN111476716 B CN 111476716B CN 202010260631 A CN202010260631 A CN 202010260631A CN 111476716 B CN111476716 B CN 111476716B
Authority
CN
China
Prior art keywords
video
grid
spliced
pixel point
grid model
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.)
Active
Application number
CN202010260631.2A
Other languages
English (en)
Other versions
CN111476716A (zh
Inventor
俞俊程
陈思
吕长宝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Liwei Zhilian Technology Co.,Ltd.
Shenzhen ZNV Technology Co Ltd
Original Assignee
Shenzhen ZNV Technology Co Ltd
Nanjing ZNV Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen ZNV Technology Co Ltd, Nanjing ZNV Software Co Ltd filed Critical Shenzhen ZNV Technology Co Ltd
Priority to CN202010260631.2A priority Critical patent/CN111476716B/zh
Publication of CN111476716A publication Critical patent/CN111476716A/zh
Application granted granted Critical
Publication of CN111476716B publication Critical patent/CN111476716B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4038Image mosaicing, e.g. composing plane images from plane sub-images
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • G06T17/205Re-meshing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Architecture (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Geometry (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

一种实时视频拼接方法和装置,包括:截取待拼接的第一视频和第二视频,将所述第一视频和所述第二视频对应的一帧图片进行拼接,并获取图片拼接位置的像素点坐标集合;建立三维网格模型,分别导入所述第一视频和所述第二视频,将图片拼接位置的像素点坐标集合转换为网格模型的网格顶点坐标集合;确定待消隐的网格,移动所述网格模型,去除所述待消隐的网格,完成拼接。本申请只需任意选择一帧图片进行拼接,对于剩余的多帧图片,只需利用三维网格模型的顶点透明度,将两段需要拼接视频的公共区域消隐,直接将两段实时视频拼接起来,减少了系统的计算量和资源消耗,能更好的保证视频的实时性。

Description

一种实时视频拼接方法和装置
技术领域
本申请涉及视频技术领域,尤其涉及一种实时视频拼接方法和装置。
背景技术
随着网络和多媒体技术的发展与普及,越来越多的视频、图像应用技术进入人们的生活之中,其中视频技术占据了重要的组成部分。在三维场景中的,实时视频的接入以及处理是近年来该领域的研究热点,为了实现更大范围的可视范围以及解决鱼眼镜头等广角设备带来的画面形变严重等问题,枪机视频的拼接技术应运而生。视频拼接技术能很好地解决这些问题,并且在监控、消防、交通、公安、医学等领域有着广泛的应用。
视频拼接技术是在图片拼接技术的基础上发展起来的,利用图片拼接技术,将需要拼接的视频的每一帧画面拼接起来,再组合成视频是一种常用的视频拼接方法。三维虚拟场景是该技术新的应用领域,由于三维场景的特殊性,以及如今视频清晰度的不断提升,这种由图片完成拼接再组合成视频的方法,其对系统资源的消耗量较大,计算量较大,以至于无法满足视频的实时性要求。
发明内容
本申请提供一种可降低系统资源消耗的实时视频拼接方法和装置。
根据本申请的第一方面,本申请提供一种实时视频拼接方法,包括:
截取待拼接的第一视频和第二视频,将所述第一视频和所述第二视频对应的一帧图片进行拼接,并获取图片拼接位置的像素点坐标集合;
建立三维网格模型,分别导入所述第一视频和所述第二视频,将图片拼接位置的像素点坐标集合转换为网格模型的网格顶点坐标集合;
确定待消隐的网格,利用所述三维网格模型的顶点透明度去除所述待消隐的网格,并移动所述三维网格模型以完成拼接。
进一步地,所述将图片拼接位置的像素点坐标集合转换为网格模型的网格顶点坐标集合,包括:
通过两次坐标映射,将所述图片拼接位置的像素点用所述网格模型中的该像素点的四个顶点坐标表示。
进一步地,所述通过两次坐标映射,将所述图片拼接位置的像素点用所述网格模型中的该像素点的四个顶点坐标表示,包括:
将所述图片中的像素点Px按照由左向右、由下到上的顺序存储在一维数组P[mn]中,其中为n行数,m为列数;
将所述像素点Px转换为二维坐标中的点Pij,Pij所在的位置通过二维坐标表示为P[x/m+1,x%m+1];
将所述二维坐标中的像素点Pij定位到该像素点在所述网格模型上对应网格的四个顶点的坐标为V1[x/m+1,x%m+1,0]、V2[x/m+1,x%m,0]、V3[x/m,x%m,0]和V4[x/m,x%m+1,0]。
进一步地,所述通过两次坐标映射,将所述图片拼接位置的像素点用所述网格模型中的该像素点的四个顶点坐标表示,还包括:
在x轴方向添加一个偏移量,所述偏移量的大小为m;
所述第一视频包括左侧待拼接网格模型,左侧的待拼接像素点的网格顶点的坐标为V11[m,x%m+1,0]、V12[m,x%m,0]、V13[x/m,x%m,0]和V14[x/m,x%m+1,0];
所述第二视频为右侧待拼接网格模型,获取右侧的待拼接像素点的网格顶点的坐标为V21[x/m+m+1,x%m+1,0]、V22[x/m+1+m,x%m,0]、V23[m,x%m,0]和V24[m,x%m+1,0]。
进一步地,所述确定待消隐的网格,利用所述三维网格模型的顶点透明度去除所述待消隐的网格,并移动所述三维网格模型以完成拼接,包括:
将左侧的待拼接像素点坐标集合中的点,所对应的待消隐的网格为设置为由V13[x/m,x%m,0]和V11[m,x%m+1,0]定义的网格;
将右侧的待拼接像素点坐标集合中的点,所对应的待消隐的网格为设置为由V23[m,x%m,0]和V21[x/m+m+1,x%m+1,0]定义的网格;
分别将左侧和右侧的待拼接像素点坐标集合中的消隐网格的顶点的透明度设置为0;
将所述右侧待拼接网格模型向左平移,平移量为所述右侧待拼接像素点和与其对应的所述左侧待拼接像素点的横坐标的差值。
根据本申请的第二方面,本申请提供一种实时视频拼接装置,包括:
视频处理模块,用于截取待拼接的第一视频和第二视频,将所述第一视频和所述第二视频对应的一帧图片进行拼接,并获取图片拼接位置的像素点坐标集合;
模型建立模块,用于建立三维网格模型,分别导入所述第一视频和所述第二视频,将图片拼接位置的像素点坐标集合转换为网格模型的网格顶点坐标集合;
视频拼接模块,用于确定待消隐的网格,利用所述三维网格模型的顶点透明度去除所述待消隐的网格,并移动所述三维网格模型以完成拼接。
进一步地,所述模型建立模块,还用于通过两次坐标映射,将所述图片拼接位置的像素点用所述网格模型中的该像素点的四个顶点坐标表示。
进一步地,所述模型建立模块,包括:
第一转换单元,用于将所述图片中的像素点Px按照由左向右、由下到上的顺序存储在一维数组P[mn]中,其中为n行数,m为列数;
第二转换单元,用于将所述图片拼接位置的像素点Px转换为二维坐标中的点Pij,Pij所在的位置通过二维坐标表示为P[x/m+1,x%m+1];
第三转换单元,用于将所述二维坐标中的像素点Pij定位到该像素点在所述网格模型上对应网格的四个顶点的坐标为V1[x/m+1,x%m+1,0]、V2[x/m+1,x%m,0]、V3[x/m,x%m,0]和V4[x/m,x%m+1,0];
所述第三转换单元,还用于在x轴方向添加一个偏移量,所述偏移量的大小为m;所述第一视频包括左侧待拼接网格模型,左侧的待拼接像素点的网格顶点的坐标为V11[m,x%m+1,0]、V12[m,x%m,0]、V13[x/m,x%m,0]和V14[x/m,x%m+1,0];所述第二视频为右侧待拼接网格模型,获取右侧的待拼接像素点的网格顶点的坐标为V21[x/m+m+1,x%m+1,0]、V22[x/m+1+m,x%m,0]、V23[m,x%m,0]和V24[m,x%m+1,0]。
进一步地,所述视频拼接模块,包括:
第一处理单元,用于将左侧的待拼接像素点坐标集合中的点,所对应的待消隐的网格为设置为由V13[x/m,x%m,0]和V11[m,x%m+1,0]定义的网格;
第二处理单元,将右侧的待拼接像素点坐标集合中的点,所对应的待消隐的网格为设置为由V23[m,x%m,0]和V21[x/m+m+1,x%m+1,0]定义的网格;
第三处理单元,用于分别将左侧和右侧的待拼接像素点坐标集合中的消隐网格的顶点的透明度设置为0;
拼接单元,用于将所述右侧待拼接网格模型向左平移,平移量为所述右侧待拼接像素点和与其对应的所述左侧待拼接像素点的横坐标的差值。
根据本申请的第三方面,本申请提供一种实时视频拼接装置,包括:
存储器,用于存储程序;
处理器,用于通过执行所述存储器存储的程序以实现上述的方法。
本申请的实时视频拼接方法和装置,包括先将第一视频和第二视频对应的一帧图片进行拼接,并获取图片拼接位置的像素点坐标集合;再建立三维网格模型,分别导入第一视频和第二视频,将图片拼接位置的像素点坐标集合转换为网格模型的网格顶点坐标集合;确定待消隐的网格,移动网格模型,去除待消隐的网格,完成拼接。本申请只需任意选择一帧图片进行拼接,对于剩余的多帧图片,只需利用三维网格模型的顶点透明度,将两段需要拼接视频的公共区域消隐,直接将两段实时视频拼接起来,减少了系统的计算量和资源消耗,能更好的保证视频的实时性。
附图说明
图1为本申请实施例一中的方法在一种实施方式中的流程图;
图2为本申请实施例一中的图片中的像素点Px在一维数组中的示意图;
图3为图2中的Px映射为在二维坐标系统中的像素点Pij的示意图;
图4为图3中的像素点Pij映射为设置在网格模型中的像素点P(v1,v2,v3,v4)的示意图;
图5为本申请实施例一中的三维网格模型消隐区域示意图;
图6为本申请实施例一中的三维网格模型拼接示意图;
图7为本申请实施例一中的方法在另一种实施方式中的流程图;
图8为本申请实施例二中的装置在一种实施方式中的程序模块示意图;
图9为本申请实施例二中的装置在另一种实施方式中的程序模块示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。本申请可以以多种不同的形式来实现,并不限于本实施例所描述的实施方式。提供以下具体实施方式的目的是便于对本申请公开内容更清楚透彻的理解,其中上、下、左、右等指示方位的字词仅是针对所示结构在对应附图中位置而言。
然而,本领域的技术人员可能会意识到其中的一个或多个的具体细节描述可以被省略,或者还可以采用其他的方法、组件或材料。在一些例子中,一些实施方式并没有描述或没有详细的描述。
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。
此外,本文中记载的技术特征、技术方案还可以在一个或多个实施例中以任意合适的方式组合。对于本领域的技术人员来说,易于理解与本文提供的实施例有关的方法的步骤或操作顺序还可以改变。因此,附图和实施例中的任何顺序仅仅用于说明用途,并不暗示要求按照一定的顺序,除非明确说明要求按照某一顺序。
本申请可用于枪机位置处于同一水平高度,倾斜角度相同,拥有公共画面的多个枪机视频拼接。若两个枪机拍摄的画面具有高度差,可以对画面进行裁剪,取其公共画面进行拼接。
实施例一:
本申请提供的一种实时视频拼接方法,其一种实施方式,如图1所示,包括以下步骤:
步骤102:截取待拼接的第一视频和第二视频,将第一视频和第二视频对应的一帧图片进行拼接,并获取图片拼接位置的像素点坐标集合。
截取两段需要进行拼接的实时视频Video1和Video2同一时刻的一帧图片Texture1和Texture2,利用图片拼接算法进行拼接,图片拼接算法可根据实际情况决定。假设两张图片的大小都是m*n(m,n分别表示图片长度和宽度的像素大小),最终获取到两张图片上拼接位置的像素点坐标集合Point1[n]和Point2[n]。
步骤104:建立三维网格模型,分别导入所述第一视频和所述第二视频,将图片拼接位置的像素点坐标集合转换为网格模型的网格顶点坐标集合。
图片像素的坐标按照由左向右、由下到上的顺序存储在一维数组P[mn]中,数组中每个元素Px代表图片中对应的一个像素的颜色属性值,数组的大小为m*n,其中,m和n分别为自然数,x∈{0,1,2,……mn-1},其排列方式如图2所示。由于图片的二维特性,如图3所示,图片中某一个像素Px所在的位置可以用Pij的形式表示,其中i表示该像素点所在的行数,j表示该像素点所在的列数,所以Px可以表示为P[x/m+1,x%m+1]。
进一步地,为了方便计算以及更直观的表示像素图片与网格模型之间的关系,根据图片大小分别制作两个横向有m个单位网格纵向有n个单位网格的Plane模型Model1和Model2。模型制作完成之后将其依次放置在三维坐标原点出,模型摆放位置如图4所示,同时给两个模型分别接入需要拼接的两个实时视频Video1和Video2。为了方便表示图片和网格模型之间的关系,所建立的网格模型的单位网格数量与图片像素大小一致,所以可以直接根据Px直接定位到该像素点在网格模型上对应的网格顶点坐标,图片中的一个像素点在网格模型上表现为由两个三角形组成的一个正方形的网格,该正方形网格的右上角三维坐标P(V1,V2,V3,V4)可以表示为:V1[x/m+1,x%m+1,0],顺时针方向其余三点分别表示为:V2[x/m+1,x%m,0]、V3[x/m,x%m,0]和V4[x/m,x%m+1,0]。至此,通过两次坐标映射,场景中左侧模型表面图片中的像素点可以用网格模型中的四个顶点坐标表示出来。本实施例以左、右拼接为例进行说明,左侧模型表面图片中像素的坐标可以直接与三维场景坐标对应,而右侧模型表面图片的像素点坐标以及图片中拼接点Point2[n]则需要在x轴方向添加一个偏移量,该偏移量的大小为m,所得拼接点为Point2'[n]。所以,右侧模型表面图片的像素点Px所对应的正方形网格顶点坐标表示为V1[x/m+m+1,x%m+1,0]、V2[x/m+1+m,x%m,0]、V3[m,x%m,0]和V4[m,x%m+1,0]。
步骤106:确定待消隐的网格,利用三维网格模型的顶点透明度去除待消隐的网格,并移动三维网格模型以完成拼接。
从两张图片上可得到的拼接位置的像素点坐标集合Point1[n]和Point2[n]。如图5、图6所示,对于Point1[n]中的点Px,其对应的在网格模型中的正方形网格的左下角的坐标可以表示为V[x/m,x%m,0],同时又因为Point1[n]代表位于左边的网格模型表面图片的拼接点坐标,所以该点对应的消隐的网格为由V[x/m,x%m,0]和V[m,x%m+1,0]所定义的网格。将Point1[n]中每一个像素点对应的消隐网格的定义顶点的透明度设置为0,即为将坐标模型表面图片的公共区域设置为透明。对于Point2'[n]中的点Px,其对应点网格模型中正方形网格的右上角的坐标可以表示为V[x/m+m+1,x%m+1,0]。同时又因为Point2'[n]代表位于右侧的网格模型表面图片的拼接点坐标,所以该点对应的消隐的网格为由V23[m,x%m,0]和V21[x/m+m+1,x%m+1,0]所定义的网格。将Point2'[n]中每一个像素点对应的消隐网格的定义顶点的透明度设置为0,则为将坐标模型表面图片的公共区域设置为透明。
消除公共像素点之后,需要将右侧模型向左平移以完成拼接,平移大小为Point2'[0].x-Point1[0].x。至此,将左右两块面片的公共部分消隐,实现了两组视频的拼接,三维网格拼接示意图如图5所示。
如图7所示,本申请提供的一种实时视频拼接方法,其另一种实施方式,包括以下步骤:
步骤702:截取待拼接的两段实时视频Video1和Video2同一时刻的一帧图片Texture1和Texture2,并获取图片拼接位置的像素点坐标集合Point1[n]和Point2[n]。
其中,两张图片的大小都设为m*n(m,n分别表示图片长度和宽度的像素大小),最终获取到两张图片上拼接位置的像素点坐标集合Point1[n]和Point2[n]。
步骤704:将图片中的像素点Px按照由左向右、由下到上的顺序存储在一维数组P[mn]中,其中为n行数,m为列数。
步骤706:将像素点Px转换为二维坐标中的点Pij,Pij所在的位置通过二维坐标表示为P[x/m+1,x%m+1]。
步骤708:建立三维网格模型,将二维坐标中的像素点Pi j定位到该像素点在网格模型上对应网格的四个顶点的坐标V1[x/m+1,x%m+1,0]、V2[x/m+1,x%m,0]、V3[x/m,x%m,0]和V4[x/m,x%m+1,0]。
通过两次坐标映射,将所述图片拼接位置的像素点用所述网格模型中的该像素点的四个顶点坐标表示。
步骤710:在x轴方向添加一个偏移量,偏移量的大小为m。
步骤712:获取Texture1的待拼接像素点的网格顶点的坐标。Texture1为左侧待拼接网格模型,左侧的待拼接像素点的网格顶点的坐标为V11[m,x%m+1,0]、V12[m,x%m,0]、V13[x/m,x%m,0]和V14[x/m,x%m+1,0];
步骤714:获取Texture2的待拼接像素点的网格顶点的坐标。Texture2为右侧待拼接网格模型,获取右侧的待拼接像素点的网格顶点的坐标为V21[x/m+m+1,x%m+1,0]、V22[x/m+1+m,x%m,0]、V23[m,x%m,0]和V24[m,x%m+1,0]。
步骤716:将左侧的待拼接像素点坐标集合中的点,所对应的待消隐的网格为设置为由V13[x/m,x%m,0]和V11[m,x%m+1,0]定义的网格。
步骤718:将右侧的待拼接像素点坐标集合中的点,所对应的待消隐的网格为设置为由V23[m,x%m,0]和V21[x/m+m+1,x%m+1,0]定义的网格。
步骤720:分别将左侧和右侧的待拼接像素点坐标集合中的消隐网格的顶点的透明度设置为0。
步骤722:将右侧待拼接网格模型向左平移,平移量为右侧待拼接像素点和与其对应的所述左侧待拼接像素点的横坐标的差值。
本申请的实时视频拼接方法,包括先将第一视频和第二视频对应的一帧图片进行拼接,并获取图片拼接位置的像素点坐标集合;再建立三维网格模型,分别导入第一视频和第二视频,将图片拼接位置的像素点坐标集合转换为网格模型的网格顶点坐标集合;确定待消隐的网格,移动网格模型,去除待消隐的网格,完成拼接。本申请只需任意选择一帧图片进行拼接,对于剩余的多帧图片,只需利用三维网格模型的顶点透明度,将两段需要拼接视频的公共区域消隐,直接将两段实时视频拼接起来,减少了系统的计算量和资源消耗,能更好的保证视频的实时性。
实施例二:
本申请提供的实时视频拼接装置,如图8所示,其一种实施方式,可以包括视频处理模块810、模型建立模块820和视频拼接模块830。
视频处理模块810,可用于截取待拼接的第一视频和第二视频,将第一视频和第二视频对应的一帧图片进行拼接,并获取图片拼接位置的像素点坐标集合。
截取两段需要进行拼接的实时视频Video1和Video2同一时刻的一帧图片Texture1和Texture2,利用图片拼接算法进行拼接,图片拼接算法可根据实际情况决定。假设两张图片的大小都是m*n(m,n分别表示图片长度和宽度的像素大小),最终获取到两张图片上拼接位置的像素点坐标集合Point1[n]和Point2[n]。
模型建立模块820,可用于建立三维网格模型,分别导入视频,将图片拼接位置的像素点坐标集合转换为网格模型的网格顶点坐标集合。
图片像素的坐标按照由左向右、由下到上的顺序存储在一维数组P[mn]中,数组中每个元素Px代表图片中对应的一个像素的颜色属性值,数组的大小为m*n,其中,m和n分别为自然数,x∈{0,1,2,……mn-1},其排列方式如图2所示。由于图片的二维特性,如图3所示,图片中某一个像素Px所在的位置可以用Pij的形式表示,其中i表示该像素点所在的行数,j表示该像素点所在的列数,所以Px可以表示为P[x/m+1,x%m+1]。
进一步地,为了方便计算以及更直观的表示像素图片与网格模型之间的关系,根据图片大小分别制作两个横向有m个单位网格纵向有n个单位网格的Plane模型Model1和Model2。模型制作完成之后将其依次放置在三维坐标原点出,模型摆放位置如图4所示,同时给两个模型分别接入需要拼接的两个实时视频Video1和Video2。为了方便表示图片和网格模型之间的关系,所建立的网格模型的单位网格数量与图片像素大小一致,所以可以直接根据Px直接定位到该像素点在网格模型上对应的网格顶点坐标,图片中的一个像素点在网格模型上表现为由两个三角形组成的一个正方形的网格,该正方形网格的右上角三维坐标P(V1,V2,V3,V4)可以表示为:V1[x/m+1,x%m+1,0],顺时针方向其余三点分别表示为:V2[x/m+1,x%m,0]、V3[x/m,x%m,0]和V4[x/m,x%m+1,0]。至此,通过两次坐标映射,场景中左侧模型表面图片中的像素点可以用网格模型中的四个顶点坐标表示出来。本实施例以左、右拼接为例进行说明,左侧模型表面图片中像素的坐标可以直接与三维场景坐标对应,而右侧模型表面图片的像素点坐标以及图片中拼接点Point2[n]则需要在x轴方向添加一个偏移量,该偏移量的大小为m,所得拼接点为Point2'[n]。所以,右侧模型表面图片的像素点Px所对应的正方形网格顶点坐标表示为V1[x/m+m+1,x%m+1,0]、V2[x/m+1+m,x%m,0]、V3[m,x%m,0]和V4[m,x%m+1,0]。
视频拼接模块830,可用于确定待消隐的网格,移动所述网格模型,去除待消隐的网格,完成拼接。
从两张图片上可得到的拼接位置的像素点坐标集合Point1[n]和Point2[n]。如图5、图6所示,对于Point1[n]中的点Px,其对应的在网格模型中的正方形网格的左下角的坐标可以表示为V[x/m,x%m,0],同时又因为Point1[n]代表位于左边的网格模型表面图片的拼接点坐标,所以该点对应的消隐的网格为由V[x/m,x%m,0]和V[m,x%m+1,0]所定义的网格。将Point1[n]中每一个像素点对应的消隐网格的定义顶点的透明度设置为0,即为将坐标模型表面图片的公共区域设置为透明。对于Point2'[n]中的点Px,其对应点网格模型中正方形网格的右上角的坐标可以表示为V[x/m+m+1,x%m+1,0]。同时又因为Point2'[n]代表位于右侧的网格模型表面图片的拼接点坐标,所以该点对应的消隐的网格为由V23[m,x%m,0]和V21[x/m+m+1,x%m+1,0]所定义的网格。将Point2'[n]中每一个像素点对应的消隐网格的定义顶点的透明度设置为0,则为将坐标模型表面图片的公共区域设置为透明。
消除公共像素点之后,需要将右侧模型向左平移以完成拼接,平移大小为Point2'[0].x-Point1[0].x。至此,将左右两块面片的公共部分消隐,实现了两组视频的拼接,三维网格拼接示意图如图5所示。
本申请提供的实时视频拼接装置,如图9所示,其另一种实施方式,包括视频处理模块910、模型建立模块920和视频拼接模块930。
视频处理模块910,用于截取待拼接的第一视频和第二视频,将第一视频和第二视频对应的一帧图片进行拼接,并获取图片拼接位置的像素点坐标集合。
模型建立模块920,用于建立三维网格模型,分别导入视频,将图片拼接位置的像素点坐标集合转换为网格模型的网格顶点坐标集合。
视频拼接模块930,确定待消隐的网格,移动所述网格模型,去除待消隐的网格,完成拼接。
进一步地,模型建立模块920还可用于通过两次坐标映射,将图片拼接位置的像素点用网格模型中的该像素点的四个顶点坐标表示。
进一步地,模型建立模块920可以包括第一转换单元921、第二转换单元922和第三转换单元923。
第一转换单元921,可用于将图片的像素点Px按照由左向右、由下到上的顺序存储在一维数组P[mn]中,其中为n行数,m为列数;
第二转换单元922,可用于将图片拼接位置的像素点Px转换为二维坐标中的点Pij,Pij所在的位置通过二维坐标表示为P[x/m+1,x%m+1];
第三转换单元923,可用于将二维坐标中的像素点Pi j定位到该像素点在所述网格模型上对应网格的四个顶点的坐标为V1[x/m+1,x%m+1,0]、V2[x/m+1,x%m,0]、V3[x/m,x%m,0]和V4[x/m,x%m+1,0];
第三转换单元,还可用于在x轴方向添加一个偏移量,所述偏移量的大小为m;所述第一视频包括左侧待拼接网格模型,左侧的待拼接像素点的网格顶点的坐标为V11[m,x%m+1,0]、V12[m,x%m,0]、V13[x/m,x%m,0]和V14[x/m,x%m+1,0];所述第二视频为右侧待拼接网格模型,获取右侧的待拼接像素点的网格顶点的坐标为V21[x/m+m+1,x%m+1,0]、V22[x/m+1+m,x%m,0]、V23[m,x%m,0]和V24[m,x%m+1,0]。
进一步地,视频拼接模块930可以包括第一处理单元931、第二处理单元932、第三处理单元933和拼接单元934。
第一处理单元931,可用于将左侧的待拼接像素点坐标集合中的点,所对应的待消隐的网格为设置为由V13[x/m,x%m,0]和V11[m,x%m+1,0]定义的网格;
第二处理单元932,可将右侧的待拼接像素点坐标集合中的点,所对应的待消隐的网格为设置为由V23[m,x%m,0]和V21[x/m+m+1,x%m+1,0]定义的网格;
第三处理单元933,可用于分别将左侧和右侧的待拼接像素点坐标集合中的消隐网格的顶点的透明度设置为0;
拼接单元934,可用于将所述右侧待拼接网格模型向左平移,平移量为所述右侧待拼接像素点和与其对应的所述左侧待拼接像素点的横坐标的差值。
本申请的实时视频拼接装置,包括先将第一视频和第二视频对应的一帧图片进行拼接,并获取图片拼接位置的像素点坐标集合;再建立三维网格模型,分别导入第一视频和第二视频,将图片拼接位置的像素点坐标集合转换为网格模型的网格顶点坐标集合;确定待消隐的网格,移动网格模型,去除待消隐的网格,完成拼接。本申请只需任意选择一帧图片进行拼接,对于剩余的多帧图片,只需利用三维网格模型的顶点透明度,将两段需要拼接视频的公共区域消隐,直接将两段实时视频拼接起来,减少了系统的计算量和资源消耗,能更好的保证视频的实时性。
实施例三:
本申请实施例提供的实时视频拼接装置,包括存储器和处理器。
存储器,用于存储程序;
处理器,用于通过执行存储器存储的程序以实现实施例一中的方法。
本领域技术人员可以理解,上述实施方式中各种方法的全部或部分步骤可以通过程序来指令相关硬件完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘或光盘等。以上内容是结合具体的实施方式对本申请所作的进一步详细说明,不能认定本申请的具体实施只局限于这些说明。对于本申请所属技术领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干简单推演或替换。

Claims (3)

1.一种实时视频拼接方法,其特征在于,包括:
截取待拼接的第一视频和第二视频,将所述第一视频和所述第二视频对应的一帧图片进行拼接,并获取图片拼接位置的像素点坐标集合;
建立三维网格模型,分别导入所述第一视频和所述第二视频,将图片拼接位置的像素点坐标集合转换为网格模型的网格顶点坐标集合;
确定待消隐的网格,利用所述三维网格模型的顶点透明度去除所述待消隐的网格,并移动所述三维网格模型以完成拼接;
所述将图片拼接位置的像素点坐标集合转换为网格模型的网格顶点坐标集合,包括:
通过坐标映射,将所述图片拼接位置的像素点用所述网格模型中的该像素点的四个顶点坐标表示;
所述通过坐标映射,将所述图片拼接位置的像素点用所述网格模型中的该像素点的四个顶点坐标表示,包括:
将第一视频和第二视频中的图片的所有像素点分别按照由左向右、由下到上的顺序存储在一维数组P[x]中,x是整数,0≤x≤(mn-1),其中n为图片行数,m为图片列数;
将所述一维数组P[x]转换为二维坐标中的点Pij,Pij所在的位置通过二维坐标表示为P[x%m+1,x/m+1];
将所述二维坐标中的像素点Pij定位到该像素点在所述网格模型上对应网格的四个顶点的坐标为V1[x%m+1,x/m+1,0]、V2[x%m+1,x/m,0]、V3[x%m,x/m,0]和V4[x%m,x/m+1,0];将第一视频图片的各像素用网格模型各像素对应的四个顶点表示作为左侧待拼接网格模型,将第二视频图片的各像素用网格模型各像素对应的四个顶点表示后,向右偏移m后,作为右侧待拼接网格模型;将第一视频图片拼接位置的像素点坐标集合对应的网格设置为左侧待消隐网格、对应的像素点设置为左侧待拼接像素点;
将第二视频图片拼接位置的像素点坐标集合对应的网格的顶点坐标,向右偏移m后作为右侧待消隐网格、对应的像素点向右偏移m后设置为右侧待拼接像素点;分别将左侧待消隐网格和右侧待消隐网格的顶点的透明度设置为0;
将所述右侧待拼接网格模型向左平移,平移量为所述右侧待拼接像素点和与其对应的所述左侧待拼接像素点的横坐标的差值。
2.一种实时视频拼接装置,其特征在于,包括:
视频处理模块,用于截取待拼接的第一视频和第二视频,将所述第一视频和所述第二视频对应的一帧图片进行拼接,并获取图片拼接位置的像素点坐标集合;
模型建立模块,用于建立三维网格模型,分别导入所述第一视频和所述第二视频,将图片拼接位置的像素点坐标集合转换为网格模型的网格顶点坐标集合;
视频拼接模块,用于确定待消隐的网格,利用所述三维网格模型的顶点透明度去除所述待消隐的网格,并移动所述三维网格模型以完成拼接;
所述将图片拼接位置的像素点坐标集合转换为网格模型的网格顶点坐标集合,包括:
通过坐标映射,将所述图片拼接位置的像素点用所述网格模型中的该像素点的四个顶点坐标表示;
所述模型建立模块,包括:
第一转换单元,用于将第一视频和第二视频中图片的所有像素点分别按照由左向右、由下到上的顺序存储在一维数组P[x]中,x是整数,0≤x≤(mn-1);其中n为行数,m为列数;
第二转换单元,用于将所述一维数组P[x]转换为二维坐标中的点Pij,Pij所在的位置通过二维坐标表示为P[x%m+1,x/m+1];
第三转换单元,用于将所述二维坐标中的像素点Pij定位到该像素点在所述网格模型上对应网格的四个顶点的坐标为V1[x%m+1,x/m+1,0]、V2[x%m+1,x/m,0]、V3[x%m,x/m,0]和V4[x%m,x/m+1,0];
所述第三转换单元,还用于将第一视频图片的各像素用网格模型各像素对应的四个顶点表示作为左侧待拼接网格模型,将第二视频图片的各像素用网格模型各像素对应的四个顶点表示后,向右偏移m后,作为右侧待拼接网格模型;
所述视频拼接模块,包括:
第一处理单元,用于将第一视频图片拼接位置的像素点坐标集合对应的网格设置为左侧待消隐网格、对应的像素点设置为左侧待拼接像素点;
第二处理单元,将第二视频图片拼接位置的像素点坐标集合对应的网格的顶点坐标向右偏移m后作为右侧待消隐网格、对应的像素点向右偏移m后设置为右侧待拼接像素点;
第三处理单元,用于分别将左侧待消隐网格和右侧待消隐网格的顶点的透明度设置为0;
拼接单元,用于将所述右侧待拼接网格模型向左平移,平移量为所述右侧待拼接像素点和与其对应的所述左侧待拼接像素点的横坐标的差值。
3.一种实时视频拼接装置,其特征在于,包括:
存储器,用于存储程序;
处理器,用于通过执行所述存储器存储的程序以实现如权利要求1中所述的方法。
CN202010260631.2A 2020-04-03 2020-04-03 一种实时视频拼接方法和装置 Active CN111476716B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010260631.2A CN111476716B (zh) 2020-04-03 2020-04-03 一种实时视频拼接方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010260631.2A CN111476716B (zh) 2020-04-03 2020-04-03 一种实时视频拼接方法和装置

Publications (2)

Publication Number Publication Date
CN111476716A CN111476716A (zh) 2020-07-31
CN111476716B true CN111476716B (zh) 2023-09-26

Family

ID=71750467

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010260631.2A Active CN111476716B (zh) 2020-04-03 2020-04-03 一种实时视频拼接方法和装置

Country Status (1)

Country Link
CN (1) CN111476716B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115086575B (zh) * 2022-08-16 2022-11-29 之江实验室 一种基于无人车远程驾驶的视频画面拼接方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103096043A (zh) * 2013-02-21 2013-05-08 安徽大学 基于平行视频拼接技术的矿井安全监控方法
CN107392848A (zh) * 2017-06-14 2017-11-24 江西科技师范大学 全景图像显示方法和装置
CN107734268A (zh) * 2017-09-18 2018-02-23 北京航空航天大学 一种结构保持的宽基线视频拼接方法
CN108700798A (zh) * 2016-01-03 2018-10-23 人眼技术有限公司 在创建全景帧过程中的帧适应拼接
CN110136064A (zh) * 2019-05-14 2019-08-16 武汉高德红外股份有限公司 一种基于透明图层技术的图像拼接方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103096043A (zh) * 2013-02-21 2013-05-08 安徽大学 基于平行视频拼接技术的矿井安全监控方法
CN108700798A (zh) * 2016-01-03 2018-10-23 人眼技术有限公司 在创建全景帧过程中的帧适应拼接
CN107392848A (zh) * 2017-06-14 2017-11-24 江西科技师范大学 全景图像显示方法和装置
CN107734268A (zh) * 2017-09-18 2018-02-23 北京航空航天大学 一种结构保持的宽基线视频拼接方法
CN110136064A (zh) * 2019-05-14 2019-08-16 武汉高德红外股份有限公司 一种基于透明图层技术的图像拼接方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Wei LYU等.A survey on image and video stitching.《Virtual Reality & Intelligent Hardware》.2019,1-30. *
具有直线结构保护的网格化图像拼接;何川等;《中国图象图形学报》;20180716(第07期);973-983 *
宽基线视差图像的拼接算法;左森等;《计算机工程》;20070520(第10期);175-177 *

Also Published As

Publication number Publication date
CN111476716A (zh) 2020-07-31

Similar Documents

Publication Publication Date Title
US8401316B2 (en) Method and apparatus for block-based compression of light-field images
CN106375748B (zh) 立体虚拟现实全景视图拼接方法、装置及电子设备
CN107993276B (zh) 一种全景图像的生成方法及装置
WO2021227360A1 (zh) 一种交互式视频投影方法、装置、设备及存储介质
US20200366838A1 (en) Panoramic image generation method and device
CN103942754B (zh) 全景图像补全方法及装置
CN105262958B (zh) 一种虚拟视点的全景特写拼接系统及其方法
JP2020533710A (ja) 画像ステッチング方法および装置、記憶媒体
JP2005339313A (ja) 画像提示方法及び装置
Nielsen Surround video: a multihead camera approach
CN114782648B (zh) 图像处理方法、装置、电子设备及存储介质
CN113132708B (zh) 利用鱼眼相机获取三维场景图像的方法和装置、设备和介质
CN111866523B (zh) 全景视频合成方法、装置、电子设备和计算机存储介质
Plath et al. Adaptive image warping for hole prevention in 3D view synthesis
US20190073824A1 (en) Arbitrary view generation
CN106561044B (zh) 一种安卓系统上竖屏视频黑边的处理方法及系统
CN108986183B (zh) 一种全景地图的制作方法
CN111161130A (zh) 一种基于三维地理信息的视频矫正方法
CN114615480A (zh) 投影画面调整方法、装置、设备、存储介质和程序产品
CN111476716B (zh) 一种实时视频拼接方法和装置
CN107093165A (zh) 一种递归图像的快速显示方法及装置
WO2018234817A1 (en) APPARATUS AND METHOD FOR ASSEMBLING MULTIPLE IMAGES
CN109801211B (zh) 一种基于全景相机的目标物消除方法
CN114332356B (zh) 一种虚实画面结合方法和装置
CN117788710A (zh) 基于鱼眼图的三维空间融合方法、装置、电子设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 518057 the six level of energy storage building 3099, Keyuan South Road, Nanshan District, Shenzhen, Guangdong.

Patentee after: SHENZHEN ZNV TECHNOLOGY Co.,Ltd.

Country or region after: China

Patentee after: Nanjing Liwei Zhilian Technology Co.,Ltd.

Address before: 518057 the six level of energy storage building 3099, Keyuan South Road, Nanshan District, Shenzhen, Guangdong.

Patentee before: SHENZHEN ZNV TECHNOLOGY Co.,Ltd.

Country or region before: China

Patentee before: NANJING ZNV SOFTWARE Co.,Ltd.

CP03 Change of name, title or address