一种图像处理方法及装置与流程

文档序号:11833072阅读:204来源:国知局
一种图像处理方法及装置与流程

本发明涉及图像处理技术领域,特别涉及一种图像处理方法及装置。



背景技术:

3D(Three Dimensional)图像,即三维图像;人之所以能够看到三维图像是因为人的左、右两只眼睛从不同的角度去看某一个物体时,在左、右眼视网膜上所成的图像是有差异的,人的大脑可以根据这种图像差异来判断物体的空间位置关系,从而使人产生立体视觉,人眼的这一特性通常被称为视差特性。立体显示屏就是利用人眼的视差特性,在人眼裸视条件下呈现出具有空间深度信息的逼真三维图像。

现有技术中对3D图像的处理运算,通常用GPU(Graphics Processing Unit,图形处理器)进行处理,GPU提供有多个处理线程,在对像素进行处理时,通过同时并发多个线程处理对应的像素,由于线程并发时具有无序性,对于深度变化较大的区域,不同的线程在处理不同的像素时,可能得到同一个像素位置,容易造成像素的遮挡混乱,从而使得GPU处理图像的错误率高。



技术实现要素:

本发明实施例的目的在于提供一种图像处理方法及装置,以降低GPU处理图像的错误率。

为了达到上述目的,本发明实施例提供了一种图像处理方法,应用于3D电子沙盘图像处理系统中的图形处理器,所述图形处理器中预先存储有针对目标显示屏的蒙版数据以及预设虚拟视点映射关系,所述方法包括:

获得针对所述目标显示屏的待处理图像信息以及与所述待处理图像信息对应的投影矩阵参数信息;

根据所述待处理图像信息以及所述投影矩阵参数信息,生成针对所述待处理图像信息的彩色纹理和深度纹理;

针对所述待处理图像信息,按照预设规则,将所述待处理图像信息对应的所有像素中每预设数量个像素分为一个像素组,其中,每个像素组对应一个线程;

针对每一个线程,根据所述像素组中每个像素对应的所述彩色纹理和所述深度纹理以及对应的预设虚拟视点映射关系,对所述预设数量个像素进行串行处理,生成预设数量个虚拟视点像素;

根据所述虚拟视点像素,生成针对所述待处理图像信息的虚拟视点图;

根据所述蒙版数据,按照预设规则,对所述虚拟视点图进行调整,得到合成图;

输出所述合成图。

可选的,在所述输出所述合成图之前,所述方法还包括:

判断针对所述虚拟视点图的调整次数是否达到预设次数;

所述输出所述合成图,包括:

在所述调整次数达到预设次数的情况下,输出所述合成图。

可选的,所述根据所述待处理图像信息以及所述投影矩阵参数信息,生成针对所述待处理图像信息的彩色纹理和深度纹理,包括:

根据所述待处理图像信息以及所述投影矩阵参数信息,对所述待处理图像信息进行渲染,得到针对所述待处理图像信息的彩色纹理和一次深度纹理;

对所述一次深度纹理进行渲染,得到针对所述待处理图像信息的深度纹理。

可选的,所述根据所述蒙版数据,按照预设规则,对所述虚拟视点图进行调整,得到合成图,包括:

根据所述蒙版数据中的蒙版值,按照预设规则,对所述虚拟视点图中每一个虚拟视点像素的像素值进行调整,得到合成图;其中,所述蒙版数据中的蒙版值与所述虚拟视点图中的虚拟视点像素一一对应。

可选的,根据所述蒙版数据中的蒙版值,按照预设规则,对所述虚拟视点图中每一个虚拟视点像素的像素值进行调整,包括:

判断所述蒙版数据中与所述虚拟视点像素处对应的蒙版值是否为预设值;

如果否,对所述虚拟视点像素的像素值进行调整,得到合成图。

为了达到上述目的,本发明实施例还提供了一种图像处理装置,应用于3D电子沙盘图像处理系统中的图形处理器,所述装置包括:

存储模块,用于存储针对目标显示屏的蒙版数据以及预设虚拟视点映射关系;

获得模块,用于获得针对所述目标显示屏的待处理图像信息以及与所述待处理图像信息对应的投影矩阵参数信息;

第一生成模块,用于根据所述待处理图像信息以及所述投影矩阵参数信息,生成针对所述待处理图像信息的彩色纹理和深度纹理;

分组模块,用于针对所述待处理图像信息,按照预设规则,将所述待处理图像信息对应的所有像素中每预设数量个像素分为一个像素组,其中,每个像素组对应一个线程;

第二生成模块,用于针对每一个线程,根据所述像素组中每个像素对应的所述彩色纹理和所述深度纹理以及对应的预设虚拟视点映射关系,对所述预设数量个像素进行串行处理,生成预设数量个虚拟视点像素;

第三生成模块,用于根据所述虚拟视点像素,生成针对所述待处理图像信息的虚拟视点图;

调整模块,用于根据所述蒙版数据,按照预设规则,对所述虚拟视点图进行调整,得到合成图;

输出模块,用于输出所述合成图。

可选的,所述装置还包括:

判断模块,用于判断针对所述虚拟视点图的调整次数是否达到预设次数,如果是,触发输出模块;

所述输出模块,具体用于:输出当前合成图。

可选的,所述第一生成模块,包括:

第一渲染子模块,用于根据所述待处理图像信息以及所述投影矩阵参数信息,对所述待处理图像信息进行渲染,得到针对所述待处理图像信息的彩色纹理和一次深度纹理;

第二渲染子模块,用于对所述一次深度纹理进行渲染,得到针对所述待处理图像信息的深度纹理。

可选的,所述调整模块,具体用于:

根据所述蒙版数据中的蒙版值,按照预设规则,对所述虚拟视点图中每一个虚拟视点像素的像素值进行调整,得到合成图;其中,所述蒙版数据中的蒙版值与所述虚拟视点图中的虚拟视点像素一一对应。

可选的,所述调整模块,包括:

判断子模块,用于判断所述蒙版数据中与所述虚拟视点像素处对应的蒙版值是否为预设值,如果否,触发调整子模块;

调整子模块,对所述虚拟视点像素的像素值进行调整,得到合成图。

本发明实施例提供了一种图像处理方法及装置,根据获得的针对目标显示屏的待处理图像信息以及对应的投影矩阵参数信息,得到针对待处理图像信息的彩色纹理和深度纹理;将待处理图像信息对应的所有像素中预设数量个像素分为一个像素组,每个像素组对应一个线程中;对这预设数量个像素进行串行处理,生成预设数量个虚拟视点像素;根据虚拟视点像素,生成针对待处理图像的虚拟视点图;再根据显示屏对应的蒙版数据以及获得的彩色纹理和深度纹理,按照预设规则,对所述虚拟视点图进行调整,得到合成图;最后将合成图输出。应用本发明实施例,可以在一个线程中串行处理多个像素,降低GPU处理图像的错误率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种图像处理方法的流程示意图;

图2为本发明实施例提供的另一种图像处理方法的流程示意图;

图3为本发明实施例提供的另一种图像处理方法的流程示意图;

图4为本发明实施例提供的一种图像处理装置的结构示意图;

图5为本发明实施例提供的另一种图像处理装置的结构示意图;

图6为本发明实施例提供的另一种图像处理装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面通过具体实施例,对本发明进行详细说明。

图1为本发明实施例提供的一种图像处理方法的流程示意图,所述方法可以应用于3D电子沙盘图像处理系统中的图形处理器,所述图形处理器中预先存储有针对目标显示屏的蒙版数据,所述方法可以包括步骤:

S101:获得针对所述目标显示屏的待处理图像信息以及与所述待处理图像信息对应的投影矩阵参数信息;

随着时代的发展和科技的进步,人们的思想理念和欣赏水平也大大提高,沙盘也向着功能多样化、智能化、艺术化、人性化的方向发展。裸眼3D电子沙盘是一种具有高新技术水平、富有创新的新型数字技术。所谓裸眼3D就是不需要借助任何助视设备(如3D眼睛、头盔等),即可获得3D图像。当然,这一技术的实现需要建立在立体显示屏的基础上,立体显示屏通常采用显微透镜光栅屏幕或透镜屏技术,在水平方向上发生的折射来为双眼提供不同的透视图像,来实现立体效果。在展示环境中,通过裸眼3D电子沙盘图像处理系统,能够方便、形象、直接、准确的将图像内容显示给观看者。

不仅如此,为了使电子沙盘能够显示足够大的3D图像,在显示3D图像的时候,通常采用多屏拼接技术,即由多个显示屏进行拼接,每个显示屏显示对应的图像,多个显示屏拼接在一起形成一个大的显示屏,对应显示一幅完整的图像,为观赏者带来更震撼的视觉效果。

可以理解的是,对于一幅图像进行图像处理的时候,图形处理器需要获得待处理的图像信息以及该图像信息对应的投影矩阵。通过多屏拼接技术可实现在多个显示屏中显示,而对于每一个显示屏来说,仅显示一幅图像中的一个区域,这个要显示的区域与对应的显示屏在整个显示屏中的位置对应;每个显示屏对应一个图形处理器。图形处理器将获得显示屏对应的待处理图像信息以及对应的投影矩阵参数信息。

示例性的,假设有4个显示屏,通过多屏拼接技术形成一个大的显示屏,显示屏1相对整个显示屏来说处于左上、显示屏2相对整个显示屏来说处于右上、显示屏3相对整个显示屏来说处于左下、显示屏4相对整个显示屏来说处于右下,那么,对于图像E来说,在进行图像处理图像E的时候,会按照显示屏的分布以及大小将图像E分割为左上区域(图像A)、右上区域(图像B)、左下区域(图像C)以及右下区域(图像D)。每一个显示屏对应的图形处理器将获得对应显示屏位置的图像对应的信息,即显示屏1对应的图形处理器a获得图像A对应的信息、显示屏2对应的图形处理器b获得图像B对应的信息、显示屏3对应的图形处理器c获得图像C对应的信息、显示屏4对应的图形处理器d获得图像D对应的信息。

可知的是,由于人眼在观看图像时存在近大远小的特性,这使得不同区域的图像在人眼看来会有不同的透视效果;也就是说,每一个显示屏对应的图像均有与其对应的投影矩阵信息。每一个显示屏对应的图形处理器将获得对应显示屏位置的图像信息时,还获得与该图像信息对应的投影矩阵参数信息,这里所说的投影矩阵参数信息的表现形式有很多,比如,平截头体、透视(Perspective)等,本发明实施例不对投影矩阵参数信息的表现形式做进一步限定。

S102:根据所述待处理图像信息以及所述投影矩阵参数信息,生成针对所述待处理图像信息的彩色纹理和深度纹理;

本领域技术人员可以理解的是,一般的图像是由大量的像素构成,且每个像素均对应一个像素值。图形处理器在接收到显示屏对应的待处理图像信息以及该待处理图像信息对应的投影矩阵参数信息后,根据所获得的待处理图像信息以及待处理该图像信息对应的投影矩阵参数信息,利用OSG(Open Scene Graph的简称)中的渲染到纹理技术,对所获得的待处理图像信息进行渲染,得到针对待处理的彩色纹理和深度纹理。当然,利用OSG中的渲染到纹理技术对所获得的待处理图像进行渲染仅为本发明实施例的一种具体示例,本发明实施例并不对渲染的具体技术手段做进一步限定。

在实际应用中,S102可以包括S1021和S1022,如图2所示;

S1021:根据所述待处理图像信息以及所述投影矩阵参数信息,对所述待处理图像信息进行渲染,得到针对所述待处理图像信息的彩色纹理和一次深度纹理;

实际的应用中,图形处理器获得到待处理图像信息以及待处理图像信息对应的投影矩阵参数信息后,根据获得的待处理图像信息以及待处理图像信息对应的投影矩阵参数信息,利用OSG中的渲染到纹理技术对待处理图像信息进行一次渲染处理,得到针对待处理图像信息的彩色纹理和一次深度纹理;其中,彩色纹理可以直接映射给图形处理器中的CUDA线程,以便进一步对图像进行处理。而一次深度纹理不能够直接映射给图形处理器中的CUDA线程,CUDA不支持OSG中获得的一次深度纹理的数据格式,因此,需要对一次深度纹理再次渲染,将一次深度纹理转换为与彩色纹理相同的数据格式,以便进一步对图像进行处理。

S1022:对所述一次深度纹理进行渲染,得到针对所述待处理图像信息的深度纹理。

由上述不难得知,为了保证深度纹理能够与彩色纹理具有相同的数据格式,需要对一次深度纹理再次进行渲染,得到针对待处理图像信息的深度纹理;经过再次渲染后,得到的深度纹理被转换为与彩色纹理相同的数据格式,此时的深度纹理可以直接映射给图形处理器中的CUDA线程,以便进一步对图像进行处理。

S103:针对所述待处理图像信息,按照预设规则,将所述待处理图像信息对应的所有像素中每预设数量个像素分为一个像素组,其中,每个像素组对应一个线程;

不难理解的是,对一幅图像来说,图像尺寸的长度与宽度是以像素为单位的。像素是图像最基本的单位,每个像素就是一个小点,而不同颜色的点(像素)组合起来就变成一幅动人的图像。一般而言,图像的像素越多,图像的尺寸就越大。比如:分辨率为640×480的图像,大概含有31万个像素,也就是人们常说的30万像素;分辨率为3840×2160的图像,则包含高达830万个像素,也就是人们常说的4K图像;前者为图像宽度,后者为图像的高度,两者相乘得出的是图像所包含像素的数量。像素的数量越多,图像越清晰细腻,可输出图像尺寸也越大。

可知的是,图形处理器处理的对象其实是像素,而处理像素的最小单位是图形处理器中的线程。现有技术中,在图形处理器处理图像时,同时并发图像处理器对应的线程,每一个线程每次仅能对一个像素进行处理,一般图形处理器中线程的数量一般远小于图像所包含的像素数量,因此处理一次像素后,图形处理器中的线程将重新处理图像中未进行处理过像素。但是,一般图像的深度均有变化,在深度变化比较大的图像区域(深度跳变区),不同的线程处理区域中的像素时将会出现处理后的填充位置相同的现象,这样使得后续的像素填充时,在生成对应位置像素时出现错误,因此,采用现有技术对像素进行处理时错误率比较高。

举例而言,现需要对一个8K图像E,也就是大小为7680×4320的图像E进行处理,经过多屏拼接技术可以将大小为7680×4320的图像E分割为4个大小相同的4K图像,即大小为3840×2160的图像,分别为:位于左上区域的图像A、位于右上的图像B、位于左下的图像C以及位于右下的图像D,它们的图像大小均为3840×2160,不难得知的是,图像A、B、C以及D对应的信息分别对应图形处理器a、b、c以及d,可以理解的是,图形处理器a处理图像A对应的信息、图形处理器b处理图像B对应的信息、图形处理器c处理图像C对应的信息以及图形处理器d处理图像D对应的信息是独立完成的,且处理的流程相同,现针对图形处理器b来说,图形处理器b需要处理的是图像B对应的信息,如果图形处理器b中的线程共有1920个,可知的有,图像B对应的信息对应的所有像素共有3840×2160个,也就是8294400个;图形处理器b对图像B对应的信息进行处理时,每一次每个线程处理一个像素,对于每个线程来说,一共需要处理4320个像素。

若按照从左往右,先上后下的顺序对像素进行命名的话,那么第1行第1个像素为像素1,第1行第2个像素为像素2,第1行第3840个像素为像素3840,第2行第1个像素为像素3841,按照这样的命名规则对像素进行命名;若像素384101-像素384104,即第101行的第101个像素-第101行的第104个像素之间的跳变很大(深度跳变),在对这4个像素进行处理的时候,每个线程对应处理一个像素,通常按照线程的顺序大小以及像素的顺序进行处理,可以理解的,像素384101-像素384104将由线程101-104分别进行处理,即线程101处理像素384101、线程102处理像素384102、…、线程104处理像素384104。由于线程与线程之间在处理像素时是没有先后顺序的,因此,线程101处理像素384101可能是在线程102处理像素384102之后,也可能在线程103处理像素384103之后,或者在线程104处理像素384104,当然,本申请不对线程之间的处理顺序做进一步限定。

由于线程之间的处理顺序是不确定的,在对深度变化比较大的图像区域(深度跳变区)中连续的像素进行处理时,处理的顺序也是不确定的,这将造成在后续的像素填充时,在生成对应位置像素时出现错误。

而本发明实施例提供的图像处理方法在对图像进行处理的时候,需要将待处理的图像信息对应的所有像素按照预设的规则进行分组,得到的每个像素组将对应一个线程来处理。例如,图形处理器b对图像B对应的所有像素进行分组,这里的进行分组的规则有很多,可以将图像B对应的所有像素中行方向上的像素取预设数量个分为一个像素组。可取预设数量为4,那么,图像B对应的所有像素中每行方向上的像素可以分为960个像素组,图像B共可以分为2073600个像素组,分别命名为像素组1-2073600。不难理解,这2073600个像素组将由图形处理器中的1920个线程进行处理,那么,每个线程需要对应处理1080个像素组。进行分组的规则还可以为,将图像B对应的所有像素中列方向上的像素取预设数量个分为一个像素组,当然也可以为图像B对应的所有像素中的一个小区域作为一个像素组。

当预设数量与行或者列方向上的像素不是整数倍的关系时,将按照预设数量进行分组,最后剩余的不够该预设数量时,将剩余的像素作为一个像素组。如,当预设数量取7,此时对图像B行方向上的像素进行分组时,得到548个像素组之后还剩余4个像素,那么将剩余的4个像素作为一个像素组。

值得说明的是,上述的分组规则为本发明实施例的一种具体示例,预设数量也可以为其他值,本申请不对分组规则以及预设数量做进一步限定。

S104:针对每一个线程,根据所述像素组中每个像素对应的所述彩色纹理和所述深度纹理以及对应的预设虚拟视点映射关系,对所述预设数量个像素进行串行处理,生成预设数量个虚拟视点像素;

示例性的,假设图像B中的像素组96026中像素384101-像素384104,即第101行的第26个像素组的深度跳变很大(深度跳变),同样按照线程的顺序大小以及像素组的顺序进行处理,但与现有技术的处理方法不同的是,像素组96026将由图形处理器b中的线程26来进行处理,即像素384101-像素384104均由线程26进行处理,在具体的处理过程中,线程26依次的处理像素组96026中的像素,例如,线程26先处理像素组96026中的像素384101,处理完像素384101之后继续处理像素384102,之后将按照像素的顺序依次处理像素组96026中剩余的像素384103和像素384104,也就是说,对于像素组96026中的像素384101-384104来说,线程26处理是按照先后顺序进行的。

线程26在处理像素组96026中每一个像素时,根据待处理图像信息对应的彩色纹理以及深度纹理中与像素384101-像素384104对应的彩色纹理和深度纹理,在对应的预设虚拟视点映射关系下,生成与像素384101-像素384104对应的虚拟视点像素。

需要说明的是,图形处理器中的1920个线程是同时并发处理像素的,当线程26处理完像素组96026时,按照一定的顺序将继续处理下一个像素组,如像素组96026+1920,即像素组97946。如果处理到最后,剩余像素组的数量小于图形处理器中所包含的线程数量时,图形处理器将同时并发与剩余像素组相同数量个线程来处理剩余的像素组;例如,当前还剩余1600个像素组,而图形处理器中包含有1920个线程,那么,此时图形处理器将同时并发1600个线程来对应处理剩余的1600个像素组。

值得说明的是,对应的预设虚拟视点映射关系预先存储在对应的图形处理器中,预设虚拟视点映射关系可以将图像信息对应的所有像素经过处理之后生成对应的虚拟视点像素。

S105:根据所述虚拟视点像素,生成针对所述待处理图像信息的虚拟视点图;

以图形处理器b为例进行说明,图形处理器b处理完图像B对应的像素1-8294400后,对应的将生成虚拟视点像素1-8294400,所有的虚拟视点像素将组成虚拟视点图B1

S106:根据所述蒙版数据,按照预设规则,对所述虚拟视点图进行调整,得到合成图;

需要强调的是,图形处理器中预先存储有针对目标显示屏的蒙版数据,目标显示屏就是与图形处理器对应的显示屏。本领域技术人员可以理解的是,蒙版就是我们选区之外的部分,负责保护选区内容。由于蒙版所蒙住的区域是处理选区时不受影响的区域,在图层上可以显示出来,即在总图上可见,而可见程度往往被称为蒙版值,蒙版值决定了像素在图形中是否可见程度。

不难理解的是,要想在显示屏中获得较为理想的显示效果,在输出虚拟视点图前,需要结合显示屏对应的蒙版数据对虚拟视点图进行调整,得到合成图。

实际应用中,对所述虚拟视点图进行调整可以:根据所述蒙版数据中的蒙版值,按照预设规则,对所述虚拟视点图中每一个虚拟视点像素的像素值进行调整,得到合成图,其中,所述蒙版数据中的蒙版值与所述虚拟视点图中的虚拟视点像素一一对应。

不难理解,上述生成的虚拟视点图中的每一个虚视点像素与图形处理器中所保存的蒙版信息中的蒙版值一一对应,也就是说,图形处理所生成的虚拟视点图中的每一个虚拟视点像素将在显示屏中对应一个显示位置,该位置在蒙版数据中对应一个蒙版值,将该处的蒙版值结合对应的虚拟视点像素,对该虚拟视点像素的像素值进行调整,调整可以为将对应的虚拟视点像素值增加,或则将对应的虚拟视点像素值减小。本发明实施例不对像素值调整的具体形式做进一步限定。

进一步的,对所述虚拟视点图进行调整还可以:判断所述蒙版数据中与所述虚拟视点像素处对应的蒙版值是否为预设值;

如果否,对所述虚拟视点像素的像素值进行调整,得到合成图。

不难理解的是,当蒙版值为某一个值的时候,例如该值为0,那么认为该位置的像素已经具有比较理想的显示效果,图形处理器将不再调整该处的像素值。判断所述蒙版数据中与所述虚拟视点像素处对应的蒙版值是否为预设值,如果不为预设值,将该处的蒙版值结合对应的虚拟视点像素,对该虚拟视点像素的像素值进行调整,调整可以为将对应的虚拟视点像素值增加,或者将对应的虚拟视点像素值减小,当然,增加或者减小的数值不做具体要求。分别按照上述过程对虚拟视点图A1、B1、C1、D1进行调整,对应可得到合成图图A2、B2、C2、D2

需要说明的是,预设值设置为0并不对本申请中预设值的大小构成限定。

S107:输出所述合成图。

图形处理器将调整后的虚拟视点图输出给对应的显示屏,显示屏接受到虚拟视点图之后在显示屏中显示该虚拟视点图;不难理解的,所有的显示屏显示的虚拟视点图将组成一幅完整的图像。例如,显示屏1、2、3和4在对应的显示屏中显示与各自对应的合成图A2、B2、C2、D2后,由合成图图A2、B2、C2、D2组成大小为7680×4320的图像E2

应用图1提供的实施例,图形处理器通过将待处理图像信息对应的所有像素中预设数量个像素分为一个像素组,每个像素组对应一个线程中;对这预设数量个像素进行串行处理,生成预设数量个虚拟视点像素;根据虚拟视点像素,生成针对待处理图像的虚拟视点图;降低GPU处理图像的错误率。

在图1提供的实施例基础上,本发明实施例还提供一种图像处理方法,如图3所示,在所述输出调整后的虚拟视点图之前,还可以包括S108:判断针对所述虚拟视点图的调整次数是否达到预设次数。

实际应用中,为了达到更为准确的处理效果,图形处理器在处理图像时,需要多次对生成的虚拟视图进行调整,不过为了尽量的减小图形处理器的运算压力,一般需要预先设置一个满足要求的调整次数,例如,预设次数可以取28,那么也就是说,图形处理器需要对生成的虚拟视点图调整28次,每调整一次,图形处理器将计数一次,并且判断当前对应的调整次数是否达到预设的28次,如果达到了28次,将当前合成图输出给对应的显示屏,显示屏接受到该合成图后将在显示屏中显示该合成图。如果没有达到预设的28次,返回S106继续执行。

值得一提的是,上述的预设次数取28为经验值,本发明实施例并不对预设次数做明确限定。

应用图3提供的实施例,通过对生成的虚拟点视图进行连续多次的调整,使得调整后得到的合成图具有更佳的显示效果。

与图1提供的实施例相对应的,本发明实施例提供了一种图像处理装置,如图4所示,所述装置可以包括:存储模块201、获得模块202、第一生成模块203、分组模块204、第二生成模块205、第三生成模块206、调整模块207、输出模块208,其中;

存储模块201,用于存储针对目标显示屏的蒙版数据以及预设虚拟视点映射关系;

获得模块202,用于获得针对所述目标显示屏的待处理图像信息以及与所述待处理图像信息对应的投影矩阵参数信息;

第一生成模块203,用于根据所述待处理图像信息以及所述投影矩阵参数信息,生成针对所述待处理图像信息的彩色纹理和深度纹理;

实际应用中,获得模块203可以包括:第一渲染子模块2031和第二渲染子模块2032,如图5所示,其中:

第一渲染子模块2031,用于根据所述待处理图像信息以及所述投影矩阵参数信息,对所述待处理图像信息进行渲染,得到针对所述待处理图像信息的彩色纹理和一次深度纹理;

第二渲染子模块2032,用于对所述一次深度纹理进行渲染,得到针对所述待处理图像信息的深度纹理。

分组模块204,用于针对所述待处理图像信息,按照预设规则,将所述待处理图像信息对应的所有像素中每预设数量个像素分为一个像素组,其中,每个像素组对应一个线程;

第二生成模块205,用于针对每一个线程,根据所述像素组中每个像素对应的所述彩色纹理和所述深度纹理以及对应的预设虚拟视点映射关系,对所述预设数量个像素进行串行处理,生成预设数量个虚拟视点像素;

第三生成模块206,用于根据所述虚拟视点像素,生成针对所述待处理图像信息的虚拟视点图;

调整模块207,用于根据所述蒙版数据,按照预设规则,对所述虚拟视点图进行调整,得到合成图;

实际应用中,调整模块207,具体用于:

根据所述蒙版数据中的蒙版值,按照预设规则,对所述虚拟视点图中每一个虚拟视点像素的像素值进行调整,得到合成图,其中,所述蒙版数据中的蒙版值与所述虚拟视点图中的虚拟视点像素一一对应。

进一步的,调整模块207可以包括;判断子模块和调整子模块(图中未示出),其中;

判断子模块,用于判断所述蒙版数据中与所述虚拟视点像素处对应的蒙版值是否为预设值,如果否,触发调整子模块;

调整子模块,对所述虚拟视点像素的像素值进行调整,得到合成图。

输出模块208,用于输出所述合成图。

应用图4提供的实施例,通过将待处理图像信息对应的所有像素中预设数量个像素分为一个像素组,每个像素组对应一个线程中;对这预设数量个像素进行串行处理,生成预设数量个虚拟视点像素;根据虚拟视点像素,生成针对待处理图像的虚拟视点图;降低GPU处理图像的错误率。

与图3方法实施例相对应的,在图4的基础上,本发明实施例提供了一种图像处理装置,如图6所示,所述装置还可以包括:

判断模块209,用于判断针对所述虚拟视点图的调整次数是否达到预设次数,如果是,触发输出模块208;

所述输出模块208,具体用于:输出当前合成图。

应用图6提供的实施例,通过对生成的虚拟点视图进行连续多次的调整,使得调整后得到的合成图具有更佳的显示效果。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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