CN117745550A - 一种图像畸变矫正方法、装置、电子设备及存储介质 - Google Patents
一种图像畸变矫正方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117745550A CN117745550A CN202311776775.3A CN202311776775A CN117745550A CN 117745550 A CN117745550 A CN 117745550A CN 202311776775 A CN202311776775 A CN 202311776775A CN 117745550 A CN117745550 A CN 117745550A
- Authority
- CN
- China
- Prior art keywords
- data
- distortion correction
- image
- coordinate
- texture
- 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.)
- Pending
Links
- 238000012937 correction Methods 0.000 title claims abstract description 306
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000003860 storage Methods 0.000 title claims abstract description 29
- 238000005070 sampling Methods 0.000 claims abstract description 17
- 238000013507 mapping Methods 0.000 claims description 73
- 238000004590 computer program Methods 0.000 claims description 16
- 230000009467 reduction Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 abstract description 25
- 230000008569 process Effects 0.000 description 23
- 230000009466 transformation Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 13
- 238000007667 floating Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 238000010606 normalization Methods 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000009877 rendering Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000003384 imaging method Methods 0.000 description 4
- 238000012634 optical imaging Methods 0.000 description 4
- 241000226585 Antennaria plantaginifolia Species 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003702 image correction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Image Processing (AREA)
Abstract
本发明公开了一种图像畸变矫正方法、装置、电子设备及存储介质;该方法包括:获取待展示图像,将待展示图像转换为待展示纹理;确定输出图像中每个像素坐标在待展示图像中对应的目标坐标,目标坐标根据预先确定的畸变矫正数据确定,畸变矫正数据按照整数部分和小数部分进行存储;对于输出图像中每个像素坐标,根据像素坐标对应的目标坐标从待展示纹理中采样得到目标像素值;基于各像素坐标对应的目标像素值形成畸变矫正后的输出图像,解决了图像畸变矫正时效率和性能较低的问题,由图形处理器执行,节省CPU的运算资源,无需额外安装芯片,成本和功耗较低;可应用在性能较差的图形处理器中,节省数据处理时间,提高数据处理效率和性能。
Description
技术领域
本发明涉及图像处理技术领域,尤其涉及一种图像畸变矫正方法、装置、电子设备及存储介质。
背景技术
图像在经过光学成像系统处理后,会产生畸变,为了消除畸变,通常在展示图像之前先对图像进行畸变矫正。现有技术的畸变矫正方法通常通过借用摄像头的畸变矫正模块或者额外的图像处理芯片进行畸变矫正,部分方案也会采用图形处理器进行畸变矫正。但是,通过借用摄像头的畸变矫正模块进行畸变矫正会占用大量CPU运算资源,性能较低;而图像处理芯片的成本较高,会增加大量功耗;通过图形处理器实时运行畸变矫正算法对图形处理器的性能要求较高。因此,如何快速高效地对图像进行畸变矫正成为有待解决的问题。
发明内容
本发明提供了一种图像畸变矫正方法、装置、电子设备及存储介质,以解决图像畸变矫正时效率和性能较低的问题。
根据本发明的一方面,提供了一种图像畸变矫正方法,应用于图形处理器,包括:
获取待展示图像,并将所述待展示图像转换为待展示纹理;
确定输出图像中每个像素坐标在所述待展示图像中对应的目标坐标,所述目标坐标根据预先确定的畸变矫正数据确定,所述畸变矫正数据按照整数部分和小数部分分别进行存储;
对于所述输出图像中每个像素坐标,根据所述像素坐标对应的目标坐标从所述待展示纹理中采样得到目标像素值;
基于各所述像素坐标对应的目标像素值形成畸变矫正后的输出图像。
根据本发明的另一方面,提供了一种图像畸变矫正装置,设置于图形处理器,包括:
图像获取模块,用于获取待展示图像,并将所述待展示图像转换为待展示纹理;
目标坐标确定模块,用于确定输出图像中每个像素坐标在所述待展示图像中对应的目标坐标,所述目标坐标根据预先确定的畸变矫正数据确定;
像素值采样模块,用于对于所述输出图像中每个像素坐标,根据所述像素坐标对应的目标坐标从所述待展示纹理中采样得到目标像素值,所述畸变矫正数据按照整数部分和小数部分分别进行存储;
输出图像确定模块,用于基于各所述像素坐标对应的目标像素值形成畸变矫正后的输出图像。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的图像畸变矫正方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的图像畸变矫正方法。
本发明实施例的技术方案,通过获取待展示图像,并将所述待展示图像转换为待展示纹理;确定输出图像中每个像素坐标在所述待展示图像中对应的目标坐标,所述目标坐标根据预先确定的畸变矫正数据确定,所述畸变矫正数据按照整数部分和小数部分分别进行存储;对于所述输出图像中每个像素坐标,根据所述像素坐标对应的目标坐标从所述待展示纹理中采样得到目标像素值;基于各所述像素坐标对应的目标像素值形成畸变矫正后的输出图像,解决了图像畸变矫正时效率和性能较低的问题,本申请实施例提供的图像畸变矫正方法可以由图形处理器执行,节省CPU的运算资源,提高运算性能,无需额外安装芯片,成本和功耗较低;预先根据畸变矫正数据确定输出图像中每个像素坐标对应的目标坐标,畸变矫正数据按照整数部分和小数部分分别存储,可应用在性能较差的图形处理器中,根据输出图像中每个像素坐标对应的目标坐标在待展示图像对应的待展示纹理中进行采样得到目标像素值,形成畸变矫正后的输出图像,实现图像的畸变矫正,由于目标坐标预先根据畸变矫正数据确定,在对待展示图像进行畸变矫正时,可以直接获取,有效节省数据处理时间,提高数据处理效率以及提高数据处理性能。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种图像畸变矫正方法的流程图;
图2是根据本发明实施例二提供的一种图像畸变矫正方法的流程图;
图3是根据本发明实施例二提供的一种产生枕形畸变的示例图;
图4是根据本发明实施例二提供的一种畸变矫正后的成像示例图;
图5是根据本发明实施例二提供的一种双目模式下的畸变矫正后的成像示例图;
图6是根据本发明实施例二提供的一种复制显示模式下的畸变矫正后的成像示例图;
图7是根据本发明实施例二提供的一种拉伸显示模式下的畸变矫正后的成像示例图;
图8是根据本发明实施例三提供的一种图像畸变矫正装置的结构示意图;
图9是实现本发明实施例的图像畸变矫正方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供的一种图像畸变矫正方法的流程图,本实施例可适用于快速对图像进行畸变矫正的情况,该方法可以由图像畸变矫正装置来执行,该图像畸变矫正装置可以采用硬件和/或软件的形式实现,该图像畸变矫正装置可配置于电子设备中。如图1所示,该方法包括:
S101、获取待展示图像,并将待展示图像转换为待展示纹理。
在本实施例中,待展示图像具体可以理解为需要展示在显示屏幕中的图像。待展示纹理具体可以理解为对应需要进行展示的图像的纹理,可以通过像素着色器展示。
在显示图像时,由于图像会出现畸变的情况,因此先对图像进行畸变矫正,然后对畸变矫正后的图像进行展示,避免所展示的图像发生畸变,因此,在显示图像时,可以直接获取待展示图像。待展示图像可以是由不同的应用程序、网页等直接生成的图像,也可以是考虑到不同类型的显示设备,对生成的图像进行了裁剪、复制、拉伸等处理后得到的图像。对待展示图像进行处理,将待展示图像转换为图像展示时的纹理,得到待展示纹理;待展示纹理可以由处理器对待展示图像进行转换得到。
S102、确定输出图像中每个像素坐标在待展示图像中对应的目标坐标,目标坐标根据预先确定的畸变矫正数据确定,畸变矫正数据按照整数部分和小数部分分别进行存储。
在本实施例中,输出图像为图像畸变矫正后的图像,畸变矫正后的图像作为输出图像显示在屏幕上;目标坐标具体可以理解为输出图像中的像素坐标在待展示图像中对应位置的坐标。
预先获取畸变矫正数据,畸变矫正数据按照整数部分和小数部分分别进行存储,可以解决低端的图形处理器无法直接处理浮点型纹理的问题。输出图像中的像素坐标可以预先确定,与显示屏幕的大小相关,在进行图像显示时,显示屏幕的大小可以预先确定,因此,像素坐标可以预先确定。预先确定每个像素坐标对应的畸变矫正前的坐标,将其分解处理为畸变矫正数据,此时的畸变矫正数据被分解为整数部分和小数部分分别进行存储,本执行设备预先获取畸变矫正数据,将其恢复为正常的坐标,并与像素坐标形成对应关系,对应存储。在进行图像畸变矫正时,根据预先确定的像素坐标与坐标的对应关系,确定每个像素坐标对应的坐标,将此坐标作为目标坐标。
S103、对于输出图像中每个像素坐标,根据像素坐标对应的目标坐标从待展示纹理中采样得到目标像素值。
在本实施例中,目标像素值具体可以理解为输出图像中的像素坐标所对应的像素值。对于输出图像中的每个像素坐标,其在待展示图像中对应的位置坐标为目标坐标,根据目标坐标对待展示纹理进行采样,确定目标坐标对应的像素值,将此像素值作为目标像素值,即得到像素坐标对应的目标像素值。
S104、基于各像素坐标对应的目标像素值形成畸变矫正后的输出图像。
对输出图像中的各像素坐标的像素值,按照像素坐标对应的目标像素值进行赋值,得到的图像即为畸变矫正后的输出图像,此时的输出图像完成了畸变矫正,在通过光学成像系统输出后即为正常的图像。
本发明实施例提供的一种图像畸变矫正方法,解决了图像畸变矫正时效率和性能较低的问题,本申请实施例提供的图像畸变矫正方法可以由图形处理器执行,节省CPU的运算资源,提高运算性能,无需额外安装芯片,成本和功耗较低;预先根据畸变矫正数据确定输出图像中每个像素坐标对应的目标坐标,畸变矫正数据按照整数部分和小数部分分别存储,可应用在性能较差的图形处理器中,根据输出图像中每个像素坐标对应的目标坐标在待展示图像对应的待展示纹理中进行采样得到目标像素值,形成畸变矫正后的输出图像,实现图像的畸变矫正,由于目标坐标预先根据畸变矫正数据确定,在对待展示图像进行畸变矫正时,可以直接获取,有效节省数据处理时间,提高数据处理效率以及提高数据处理性能。
实施例二
图2为本发明实施例二提供的一种图像畸变矫正方法的流程图,本实施例在上述实施例的基础上进行细化。如图2所示,该方法包括:
S201、获取待展示图像,并将待展示图像转换为待展示纹理。
S202、确定当前显示模式。
在本实施例中,当前显示模式具体可以理解为显示设备在显示图像时所使用的模式,例如,普通模式、双目模式、复制显示模式、拉伸显示模式等等。其中,普通模式情况下,图像在渲染后可以直接进行畸变矫正然后展示;双目模式下,为了简化渲染流程,会在渲染输出图像的时候,先渲染一幅分辨率为2W*H的原图像作为待展示图像,在经过畸变矫正后再由设备的左右眼显示屏分别输出左半边图像和右半边图像;复制显示模式和拉伸显示模式适用于性能有限的双目近眼显示设备,对于性能有限的双目近眼显示设备,图形处理器无法直接渲染出分辨率为2W*H的原图像,只能先渲染一幅分辨率为W*H的原图像,此时,在两种不同显示模式下采用两种不同处理方式:当左右眼显示屏需要显示相同画面时,通过复制显示模式进行显示,可以先对分辨率为W*H的原图像进行复制显示变换,得到一幅左右半边相同的分辨率为2W*H的图像,将此图像作为待展示图像进行畸变矫正后进行展示;当左右眼显示屏需要分别显示原图像左右半边并拉伸至全屏的图像时,可以先对分辨率为W*H的原图像进行拉伸显示变换,得到一幅分辨率为2W*H的图像作为待展示图像,经过畸变矫正后,左右眼显示屏分别输出左半边图像和右半边图像进行展示。
显示设备的显示模式可以有一种或者多种,显示模式可以预先设置,也可以根据设备类型或者使用场景自适应设置,在显示过程中,也可以由用户手动调整,等等。通常情况下,显示设备在工作过程中,其显示模式是确定的,不同的显示模式可以通过不同的信息进行表示,显示模式的信息可以存储在相应空间中,可以是数字、字母等等,例如,3表示复制显示模式。在进行图像展示时,读取显示设备的显示模式的信息,确定显示设备的当前显示模式。
S203、根据当前显示模式查询预先确定的模式与坐标映射关系,确定每个像素坐标对应的目标坐标。
其中,目标坐标根据预先确定的畸变矫正数据确定,畸变矫正数据按照整数部分和小数部分分别进行存储。
在本实施例中,模式和坐标映射关系具体可以理解为不同显示模式下,待展示图像中的坐标和输出图像中的坐标之间的映射关系。
预先对于不同的显示模式,确定每种显示模式下两种图像之间的坐标的映射关系,形成模式与坐标映射关系并进行保存。在确定当前显示模式后,根据当前显示模式查询预先确定的不同的模式与坐标映射关系,确定当前显示模式对应的模式与坐标映射关系,根据此模式与坐标映射关系确定每个像素坐标对应的目标坐标。
由于输出图像中像素坐标可以预先确定,本申请实施例在存储模式与坐标映射关系时,可以仅存储目标坐标,即按照一定的顺序存储每个像素坐标对应的目标坐标即可。
S204、对于输出图像中每个像素坐标,根据像素坐标对应的目标坐标从待展示纹理中采样得到目标像素值。
S205、基于各像素坐标对应的目标像素值形成畸变矫正后的输出图像。
本申请实施例中,根据当前显示模式确定目标坐标,并对待展示纹理进行采样形成畸变矫正后的输出图像,可以在不同显示模式下进行畸变矫正。本申请实施例预先确定不同显示模式的模式与坐标映射关系并存储,在确定当前显示模式后可以直接获取预先存储的模式与坐标映射关系,确定目标坐标。预先存储不同的显示模式对应的模式与坐标映射关系,可以适用于不同的设备或者显示模式,并且可以快速地实现不同显示模式下的畸变矫正;不同显示模式之间可以快速切换,不需要额外计算,只需要直接读取预先存储的相应数据文件即可。
作为本实施例的一个可选实施例,本可选实施例进一步对模式与坐标映射关系的确定步骤进行优化,包括A1-A5步骤:
A1、针对每种显示模式下的每个像素坐标,获取像素坐标对应的畸变矫正数据。
预先存储每个像素坐标对应的畸变矫正数据,畸变矫正数据是整数和小数分开存储的坐标数据。预先确定每种显示模式下的每个像素坐标对应的畸变矫正数据并按照整数部分和小数部分分别存储。在进行图像畸变矫正前,从相应的存储空间读取畸变矫正数据。
可选的,每种显示模式下的每个像素坐标所对应的畸变矫正数据根据对应的畸变矫正公式对像素坐标进行畸变矫正得到;
畸变矫正数据被分解为整数部分和小数部分;
畸变矫正数据的整数部分被划分为N份数据进行存储,畸变矫正数据的小数部分被划分为M份数据进行存储;
其中,N根据整数部分对应的数据纹理的格式和畸变矫正数据的维度确定,M根据小数部分对应的数据纹理的格式和畸变矫正数据的维度确定。
在本实施例中,畸变矫正公式可以根据图像的畸变情况预先确定,不同显示模式下的畸变矫正公式不同。对于每种显示模式,均通过相同的方式确定畸变矫正数据并分解为整数部分和小数部分分别进行存储。在确定显示模式后,确定其对应的畸变矫正公式,每个像素坐标均带入对应的畸变矫正公式计算此像素坐标在原始图像中对应的坐标,将计算得到的坐标作为畸变矫正数据。
畸变矫正数据为浮点型的数据,对于无法直接处理浮点型纹理的设备,需要将畸变矫正数据分解为两部分数据分开进行存储。本申请实施例中的畸变矫正数据按照整数和小数进行划分,被分解为整数部分和小数部分。整数部分被划分为N份数据存储,小数部分被划分为M份数据存储。其中,N和M均为正整数。
预先根据整数部分的数据纹理的格式和畸变矫正数据的维度确定N,可以综合整数部分对应的数据纹理的格式中对应的信息的种类的数量和畸变校正数据的维度确定N,例如,整数部分对应的数据纹理的格式可以是RG、RGB、RGBA等,畸变校正数据的维度可以是二维、三维等;示例性的,数据纹理的格式中对应的信息的种类的数量为畸变校正数据的维度的整数倍时,可以将数据纹理的格式中对应的信息的种类的数量作为N。预先根据小数部分对应的数据纹理的格式和畸变矫正数据的维度确定M,畸变矫正数据的维度指坐标维度,例如,坐标为二维坐标,畸变矫正数据的维度为2,小数部分对应的数据纹理的格式为RG;数据纹理的格式中对应的信息的种类的数量与畸变校正数据的维度相等时,将畸变矫正数据的维度作为M;其中,在确定M和N时,其采用的数据纹理的格式可以不同,即畸变矫正数据的整数部分和小数部分所生成的纹理颜色数据的格式不同。整数部分包括横坐标的整数部分和纵坐标的整数部分,将整数部分划分为N份数据,可以是平均划分,也可以是非平均划分,将所有的整数部分共划分为N份数据;同理,小数部分包括横坐标的小数部分和纵坐标的小数部分,将小数部分划分为M份数据,可以是平均划分,也可以是非平均划分,将所有的小数部分共划分为M份数据。
可选的,整数部分对应的数据纹理的格式为红绿蓝透明度RGBA格式,畸变矫正数据的维度为2维,小数部分对应的数据纹理的格式为红绿RG格式;相应的,N为4,M为2,畸变矫正数据中包括横坐标和纵坐标;
作为本实施例的一个可选实施例,本可选实施例进一步对畸变矫正数据的整数部分被划分为N份数据进行优化,优化为:畸变矫正数据中的横坐标对应的整数部分被划分为高位字节对应的一份数据和低位字节对应的一份数据,畸变矫正数据中的纵坐标对应的整数部分被划分为高位字节对应的一份数据和低位字节对应的一份数据。
畸变矫正数据中的横坐标的整数部分被划分为两份数据,在划分时按照数据的高位字节和低位字节进行划分,将高位字节对应的数据划分为一份数据,将低位字节对应的数据划分为另一份数据;在划分时可以平均划分,也可以不进行平均划分,可以根据需求设置。畸变矫正数据中的纵坐标的整数部分同样被划分为两份数据,在划分时同样按照数据的高位字节和低位字节进行划分,将高位字节对应的数据划分为一份数据,将低位字节对应的数据划分为另一份数据;在划分时,同样可以平均划分,也可以不进行平均划分。经过上述划分,可以将整数部分划分为4份数据。
作为本实施例的一个可选实施例,本可选实施例进一步对畸变矫正数据的小数部分被划分为M份数据进行优化,优化为:M份数据中的一份数据通过对畸变矫正数据中的横坐标对应的小数部分乘以设定系数后取整得到;M份数据中的另一份数据通过对畸变矫正数据中的纵坐标对应的小数部分乘以设定系数后取整得到。
在本实施例中,设定系数可以根据图像显示时灰度值的取值范围确定,例如,255。设定系数通常预先设置。将畸变矫正数据中的横坐标对应的小数部分乘以设定系数,然后对乘积进行取整,得到的数据作为M份数据中的一份数据,实现了将浮点型数据转换为整型数据;同理,将畸变矫正数据中的纵坐标对应的小数部分乘以设定系数,对乘积进行取整,作为M份数据中的另一份数据,实现了纵坐标的小数部分的整数化。
在畸变矫正数据为浮点型的数据时,由于低端的图形处理器无法直接处理浮点型纹理,所以在转换成纹理之前,需要对浮点型的数据进行处理,使之变成整型数据。由于像素坐标对应的畸变矫正数据不依赖具体的图像内容,所以根据畸变矫正公式对像素坐标进行畸变矫正、分解以及存储等操作,可以预先进行运算,然后把运算得到的数据存储到显示设备中,在需要进行畸变矫正变换时供程序读取,其中,显示设备可以是近眼显示设备。对输出图像的每个像素坐标通过相应的畸变矫正公式计算出所对应原图像的像素坐标,便可以得到一组记录了输出图像与待展示图像的像素坐标映射关系的数据,也就是畸变矫正数据。
示例性的,以像素坐标为(x,y),畸变矫正数据为(x0,y0),设定系数为255为例,说明畸变矫正数据存储过程,其中,畸变矫正数据即为畸变矫正变换前的坐标,包括畸变矫正变换前的横坐标和纵坐标。先将浮点型的畸变矫正变换数据分解成整数部分和小数部分:
x0=x_整数+x_小数
y0=y_整数+y_小数
使用4个字节存储整数部分:
Data_整数[0]=x_整数&0xFF
Data_整数[1]=(x_整数>>8)&0xFF
Data_整数[2]=y_整数&0xFF
Data_整数[3]=(y_整数>>8)&0xFF
再用2个字节存储小数部分:
Data_小数[0]=round(x_小数*255)
Data_小数[1]=round(y_小数*255)
在存储小数时,通过上述的处理将小数部分的取值由0-1的浮点型数转换成0-255的整型数,在像素着色器根据上述数据确定像素坐标所对应的矫正坐标时计算出的坐标精度为1/256像素间隔,对于畸变矫正来说精准度已经可以满足要求。对每个像素坐标,其对应的畸变矫正数据均通过上述的方式处理,便得到原始数据的整数部分和小数部分被分开的畸变矫正数据。
本申请实施例所述的根据畸变矫正公式对像素坐标进行畸变矫正,并对得到的畸变矫正数据进行分解和划分为多份数据进行存储,在本执行设备处理能力较低无法执行上述的处理时,可以由其他的计算机设备执行。在本执行设备处理能力较高时,可以由本执行设备处理,也可以由其他计算机设备进行处理。
本实施例还提供一种确定畸变矫正数据并进行划分存储的步骤,下述步骤在获取像素坐标对应的畸变矫正数据之前执行:针对每种显示模式下的每个像素坐标,根据畸变矫正公式对像素坐标进行畸变矫正,得到畸变矫正数据;将畸变矫正数据分解为整数部分和小数部分;将整数部分划分为N份数据,将小数部分划分为M份数据,对划分后的畸变矫正数据进行存储;其中,N根据整数部分对应的数据纹理的格式和畸变矫正数据的维度确定,M根据小数部分对应的数据纹理的格式和畸变矫正数据的维度确定。
整数部分对应的数据纹理的格式为红绿蓝透明度RGBA格式,畸变矫正数据的维度为2维,小数部分对应的数据纹理的格式为红绿RG格式;相应的,N为4,M为2,畸变矫正数据中包括畸变矫正变换前的横坐标和纵坐标;
其中,将整数部分划分为N份数据包括:将畸变矫正变换前的横坐标对应的整数部分划分为高位字节对应的一份数据和低位字节对应的一份数据,将畸变矫正变换前的纵坐标对应的整数部分划分为高位字节对应的一份数据和低位字节对应的一份数据。
其中,将小数部分划分为M份数据包括:将畸变矫正变换前的横坐标对应的小数部分乘以设定系数,对乘积进行取整,得到一份数据;将畸变矫正变换前的纵坐标对应的小数部分乘以设定系数,对乘积进行取整,得到一份数据。
示例性的,本申请实施例提供不同显示模式对应的畸变矫正公式,以便通过畸变矫正公式对像素坐标进行畸变矫正得到畸变矫正数据:
近眼显示设备的显示屏在经过光学成像系统后,一般会产生枕形畸变,图3提供了一种产生枕形畸变的示例图。为了消除这种畸变,显示屏在显示图像之前先要对原图像进行畸变矫正变换,图4提供了一种畸变矫正后的成像示例图;
畸变矫正变化可以用下述公式1表示:
畸变矫正变化可以用公式1来表示,其中k1、k2、k3和k4是仅和光学成像系统相关的参数,光学成像系统在设计好之后,这组参数就会被固定下来。和/>分别是经过畸变矫正变换前和变换后的图像中心指向图像像素中心的矢量;
为了方便计算畸变矫正变换前后的映射关系,可以用显示屏的像素坐标来表示公式1。其中,(x,y)为像素坐标,(x0,y0)为像素坐标对应的畸变矫正数据。以图像左上角为坐标原点,向右为x轴的正方向,向下为y轴的正方向。这样便可以将公式1转换为公式2,其中W和H分别为图像的水平分辨率和垂直分辨率,Δd为显示屏两个相邻像素的间距。
公式2适用于普通模式下的图像畸变矫正,此种模式下图像在渲染后可以直接进行畸变矫正然后展示。普通模式下,像素坐标代入公式2进行计算,得到对应的畸变矫正数据,畸变矫正数据被分解为整数部分和小数部分,并将整数部分划分为N份数据,将小数部分划分为M份数据进行存储。
在双目近眼显示设备对应的双目模式下,为了简化渲染流程,会在渲染输出图像的时候,先渲染一幅分辨率为2W*H的原图像,再由设备的左右眼显示屏分别输出左右半边图像。这种情况下,需要先对原图像的左右半边图像分别进行畸变矫正变换,得到一幅分辨率同为2W*H的矫正图像,再由设备的左右眼显示屏分别输出左右半边图像,图5提供了一种双目模式下的畸变矫正后的成像示例图。
要对原图像的左右半边图像分别进行畸变矫正变换,公式2转换为:
根据公式3可以计算得到一组适用于此类设备的畸变矫正数据,并分解为整数部分和小数部分,分别划分为N份数据和M份数据进行存储。只需要畸变矫正程序在初始化阶段读取此部分的畸变矫正数据并存储,不需要改变像素着色器程序,便可以在此类设备上实现畸变矫正功能。
对于性能有限的双目近眼显示设备,图形处理器无法直接渲染出分辨率为2W*H的原图像,只能先渲染一幅分辨率为W*H的原图像。这时,需要分为复制显示模式和拉伸显示模式,并分别进行相应的处理。
1、复制显示模式
当左右眼显示屏需要显示相同画面时,可以先对分辨率为W*H的原图像进行复制显示变换,得到一幅左右半边相同的分辨率为2W*H的图像,图6提供了一种复制显示模式下的畸变矫正后的成像示例图。复制显示变换的坐标可以通过公式4来表示:
结合公式3和公式4,可以得到公式5:
根据公式5计算得到的畸变矫正数据包含了复制显示变换和畸变矫正变换,上述畸变矫正数据同样在分解为整数部分和小数部分后,划分为N份数据和M份数据存储。畸变矫正程序在初始化阶段读取此数据后,只需要通过像素着色器程序进行一次绘制便可以得到理想的图像输出。
在图像展示的实际应用过程中,可以将复制显示变换后得到的左右半边相同的分辨率为2W*H的图像作为待展示图像,通过确定对应的目标坐标进行畸变矫正。
2、拉伸显示模式
当左右眼显示屏需要分别显示原图像左右半边并拉伸至全屏的图像时,可以先对分辨率为W*H的原图像进行拉伸显示变换,得到一幅分辨率为2W*H的图像,图7提供了一种拉伸显示模式下的畸变矫正后的成像示例图。拉伸显示变换可以用公式6来表示:
结合公式3和公式6,可以得到公式7:
根据公式7计算得到的畸变矫正变换数据包含了拉伸显示变换和畸变矫正变换,上述畸变矫正数据同样在分解为整数部分和小数部分后,划分为N份数据和M份数据存储。畸变矫正程序在初始化阶段读取此数据后,也只需要通过像素着色器程序进行一次绘制便可以得到理想的图像输出。
在图像展示的实际应用过程中,可以将拉伸显示变换后得到的分辨率为2W*H的图像作为待展示图像,通过确定对应的目标坐标进行畸变矫正。
需要知道的是,确定畸变矫正数据并进行划分存储的步骤可以由本执行设备执行,也可以由其他计算机设备执行。
A2、根据畸变矫正数据的整数部分生成第一纹理颜色数据,根据畸变矫正数据的小数部分生成第二纹理颜色数据。
在本实施例中,第一纹理颜色数据具体可以理解为图像展示时整数部分对应的纹理数据;第二纹理颜色数据具体可以理解为图像展示时小数部分对应的纹理数据。在图像展示时,整张图像的纹理为数据纹理,每个畸变矫正数据所生成的纹理颜色数据为数据纹理中的一小段。
本申请实施例中,对图像进行显示通常是通过像素着色器实现,像素着色器无法直接使用畸变矫正数据进行显示,因此需要将其转换为像素着色器可以识别的纹理颜色数据。由于读取到的畸变矫正数据包括整数部分和小数部分,在对图像进行显示之前,对整数部分和小数部分分别进行处理,将整数部分转换为第一纹理颜色数据,小数部分转换为第二纹理颜色数据。本申请实施例中,将畸变矫正数据转换为第一纹理颜色数据和第二纹理颜色数据可以通过预先编写的畸变矫正程序实现;畸变矫正程序可以在初始化阶段从设备存储空间中读取畸变矫正数据并转换为第一纹理颜色数据和第二纹理颜色数据。
以整数部分对应的数据纹理为RGBA格式,畸变矫正数据的维度为2维,小数部分对应的数据纹理为RG格式为例;相应的,整数部分对应的第一纹理颜色数据为RGBA格式,其中,每个颜色通道对应畸变矫正数据的Data_整数[0]、Data_整数[1]、Data_整数[2]和Data_整数[3];小数部分对应的第二纹理颜色数据为RG格式,每个颜色通道对应畸变矫正数据的Data_小数[0]和Data_小数[1]。同时需要显示的待展示图像也生成RGBA格式的待展示纹理。在图形处理器绘制之前,畸变矫正数据所生成的第一纹理颜色数据、第二纹理颜色数据和待展示纹理与像素着色器绑定。
A3、基于第一纹理颜色数据和第二纹理颜色数据进行坐标映射还原,得到像素坐标对应的映射坐标。
在本实施例中,映射坐标具体可以理解为像素坐标在二维坐标系中的坐标。基于第一纹理颜色数据和第二纹理颜色数据确定坐标映射时每个坐标轴方向的坐标对应的参数,例如,横坐标对应的参数、纵坐标对应的参数等,根据每个坐标轴方向的坐标对应的参数转换得到此坐标轴方向的坐标,形成映射坐标。
可选的,映射坐标包括横坐标和纵坐标;
作为本实施例的一个可选实施例,本可选实施例进一步将基于第一纹理颜色数据和第二纹理颜色数据进行坐标映射还原,得到像素坐标对应的映射坐标优化为B1-B3步骤:
B1、对第一纹理颜色数据进行归一化,得到第一归一化纹理数据,对第二纹理颜色数据进行归一化,得到第二归一化纹理数据。
在本实施例中,第一归一化纹理数据具体可以理解为第一纹理颜色数据归一化处理后得到的数据;第二归一化纹理数据具体可以理解为第二纹理颜色数据归一化处理后得到的数据。
在通过像素着色器展示图像时,像素着色器获取纹理颜色数据进行图像绘制时,纹理颜色数据需为归一化数据。因此,本申请实施例分别对第一纹理颜色数据和第二纹理颜色数据进行归一化处理,对第一纹理颜色数据和第二纹理颜色数据进行归一化处理的方式可以是除以设定系数,例如,255。对第一纹理颜色数据除以设定系数得到第一归一化纹理数据;对第二纹理颜色数据除以设定系数得到第二归一化纹理数据。
B2、基于第一归一化纹理数据中对应通道的第一备选纹理颜色数据和第二归一化纹理数据中对应通道的第一备选纹理颜色数据进行运算,得到映射坐标中的横坐标。
在本实施例中,第一备选纹理颜色数据具体可以理解为用于确定映射坐标的横坐标的数据,第一备选纹理颜色数据中包括多个数据,多个数据综合确定映射坐标的横坐标。
预先根据畸变矫正数据的划分过程中对数据的划分情况确定第一归一化纹理数据的各通道中与横坐标相关的通道,将此通道的数据作为第一备选纹理数据;同时,确定第二归一化纹理数据的各通道中与横坐标相关的通道,将此通道的数据同样作为第一备选纹理数据。基于第一备选纹理数据进行计算,确定整数部分和小数部分,将整数部分和小数部分进行相加得到映射坐标中的横坐标。
B3、基于第一归一化纹理数据中对应通道的第二备选纹理颜色数据和第二归一化纹理数据中对应通道的第二备选纹理颜色数据进行运算,得到映射坐标中的纵坐标。
在本实施例中,第二备选纹理颜色数据具体可以理解为用于确定映射坐标的横坐标的数据,第二备选纹理颜色数据中包括多个数据,多个数据综合确定映射坐标的纵坐标。
预先根据畸变矫正数据的划分过程中对数据的划分情况确定第一归一化纹理数据的各通道中与纵坐标相关的通道,将此通道的数据作为第二备选纹理数据;同时,确定第二归一化纹理数据的各通道中与横坐标相关的通道,将此通道的数据同样作为第二备选纹理数据。基于第二备选纹理数据进行计算,确定整数部分和小数部分,将整数部分和小数部分进行相加得到映射坐标中的纵坐标。
定义T_整数为Data_整数所生成第一归一化纹理数据,T_小数为Data_小数所生成的第二归一化纹理数据。
在绘制阶段,图形处理器会对每个输出图像的像素坐标均运行一次像素着色器的程序,确定每个像素坐标对应的映射坐标。因为纹理的每个颜色通道的数据在像素着色器中均会被归一化成0-1的浮点型数据,所以在像素着色器中可以利用下列算式还原每个像素坐标的坐标映射关系,得到像素坐标对应的映射坐标,以设定系数为255为例:
x0=float(uint(T_整数.r×255)|uint(T_整数.g×255)<<8)+
T_小数.r
y0=float(uint(T_整数.b×255)|uint(T_整数.a×255)<<8)+
T_小数.g
以横坐标为例说明上述公式的数据处理原理:将第一归一化纹理数据中r通道和g通道的数据作为第一备选纹理颜色数据,将第二归一化纹理数据中r通道的数据作为第一备选纹理颜色数据;由于数据此时已经被归一化,所以乘以255将其恢复到归一化之前,对于高8位的数据左移8位与低8位的数据进行或运算,与小数部分对应的数据进行相加,得到的即为映射坐标中的横坐标。
A4、对映射坐标进行归一化,得到矫正坐标。
在本实施例中,矫正坐标具体可以理解为用于进行图像矫正的坐标,即像素坐标在矫正前的图像中所对应的坐标。按照显示屏幕的大小对映射坐标进行归一化处理,得到矫正坐标。
作为本实施例的一个可选实施例,本可选实施例进一步将对映射坐标进行归一化,得到矫正坐标优化为:将映射坐标除以对应坐标轴方向的图像分辨率,得到矫正坐标。
在显示屏幕的大小确定后,图像分辨率也相应确定。以映射坐标为二维坐标为例,W和H分别为图像的水平分辨率和垂直分辨率。映射坐标的横坐标对应坐标轴方向的图像分辨率为水平分辨率,映射坐标的纵坐标对应坐标轴方向的图像分辨率为垂直分辨率;映射坐标的横坐标除以水平分辨率得到矫正坐标的横坐标,映射坐标的纵坐标除以垂直分辨率得到矫正坐标的纵坐标。
A5、基于每种显示模式下的所有像素坐标对应的矫正坐标,形成每种显示模式所对应的模式与坐标映射关系。
对于每种显示模式,确定此种显示模式下每个像素坐标对应的矫正坐标后,建立坐标映射关系,由此形成每种显示模式所对应的模式与坐标映射关系。本申请实施例在形成模式与坐标映射关系时,可以仅保存每种模式下的矫正坐标,此时可以按照一定顺序存储;也可以对应保存像素坐标和矫正坐标。
本申请实施例中,通过像素着色器绘制图像时,可以在像素着色器启动后首先获取畸变矫正数据,将畸变矫正数据转换成纹理与像素着色器绑定;图形处理器便可以在绘制输出图像时,通过对畸变矫正数据进行处理确定像素坐标对应的矫正坐标,并形成模式与坐标映射关系。在形成模式与坐标映射关系后,可以保存下来,在绘制图像时,根据当前显示模式、模式与坐标映射关系获取当前显示模式下像素坐标对应的矫正坐标,将矫正坐标作为目标坐标进行像素值采样,进而形成输出图像,完成图像的绘制。
示例性的,以像素着色器进行图像绘制为例,说明输出图像的确定过程。其中,输出图像的确定过程分为两个阶段,第一阶段为初始化阶段,包括:初始化像素着色器,读取预先存储的畸变矫正数据,生成数据纹理(数据纹理包括:每个像素坐标对应的第一纹理颜色数据和第二纹理颜色数据),获取待展示图像的待展示纹理,绑定数据纹理,绑定待展示纹理;第二阶段为绘制阶段,包括:获取像素坐标,读取数据纹理;计算矫正坐标;根据当前显示模式确定目标坐标,根据目标坐标对待展示纹理进行采样,确定目标像素值,形成输出图像。
需要知道的是,在通过像素着色器确定输出图像时,每个像素对应一个像素着色器,分别确定目标坐标并进行像素值采样。
本发明实施例提供的一种图像畸变矫正方法,解决了图像畸变矫正时效率和性能较低的问题,本申请实施例提供的图像畸变矫正方法由图形处理器执行,节省CPU的运算资源,提高运算性能,无需额外安装芯片,成本和功耗较低;预先根据畸变矫正数据确定输出图像中每个像素坐标对应的目标坐标,畸变矫正数据被分解为整数部分和小数部分,并划分为多份数据分别进行存储,兼容无法直接处理浮点型纹理的图形处理器。通过预先确定不同显示模式下的像素坐标对应的矫正坐标,形成模式与坐标映射关系并存储,可以在后续进行图像展示时快速获取到像素坐标对应的目标坐标,有效节省数据处理时间,提高数据处理效率以及提高数据处理性能。并且,本申请实施例提供了不同的显示模式的模式与坐标映射关系,方便显示设备在不同显示模式下进行图像显示,同时也方便显示设备切换不同显示模式,不需要额外计算,由于畸变矫正数据已经预先存储,只需要直接读取数据即可,使用过程灵活多变。
实施例三
图8为本发明实施例三提供的一种图像畸变矫正装置的结构示意图。图像畸变矫正装置设置于图形处理器,如图8所示,该装置包括:图像获取模块31、目标坐标确定模块32、像素值采样模块33和输出图像确定模块34;
其中,图像获取模块31,用于获取待展示图像,并将所述待展示图像转换为待展示纹理;
目标坐标确定模块32,用于确定输出图像中每个像素坐标在所述待展示图像中对应的目标坐标,所述目标坐标根据预先确定的畸变矫正数据确定,所述畸变矫正数据按照整数部分和小数部分分别进行存储;
像素值采样模块33,用于对于所述输出图像中每个像素坐标,根据所述像素坐标对应的目标坐标从所述待展示纹理中采样得到目标像素值;
输出图像确定模块34,用于基于各所述像素坐标对应的目标像素值形成畸变矫正后的输出图像。
本发明实施例提供的一种图像畸变矫正装置,解决了图像畸变矫正时效率和性能较低的问题,本申请实施例提供的图像畸变矫正方法由图形处理器执行,节省CPU的运算资源,提高运算性能,无需额外安装芯片,成本和功耗较低;预先根据畸变矫正数据确定输出图像中每个像素坐标对应的目标坐标,畸变矫正数据按照整数部分和小数部分分别存储,可应用在性能较差的图形处理器中,根据输出图像中每个像素坐标对应的目标坐标在待展示图像对应的待展示纹理中进行采样得到目标像素值,形成畸变矫正后的输出图像,实现图像的畸变矫正,由于目标坐标预先根据畸变矫正数据确定,在对待展示图像进行畸变矫正时,可以直接获取,有效节省数据处理时间,提高数据处理效率以及提高数据处理性能。
可选的,目标坐标确定模块32,包括:
模式确定单元,用于确定当前显示模式;
目标坐标确定单元,用于根据所述当前显示模式查询预先确定的模式与坐标映射关系,确定每个像素坐标对应的目标坐标。
可选的,该装置还包括:
畸变矫正数据获取模块,用于针对每种显示模式下的每个像素坐标,获取所述像素坐标对应的畸变矫正数据;
纹理数据生成模块,用于根据所述畸变矫正数据的整数部分生成第一纹理颜色数据,根据所述畸变矫正数据的小数部分生成第二纹理颜色数据;
映射还原模块,用于基于所述第一纹理颜色数据和所述第二纹理颜色数据进行坐标映射还原,得到所述像素坐标对应的映射坐标;
坐标归一化模块,用于对所述映射坐标进行归一化,得到矫正坐标;
映射关系形成模块,用于基于每种显示模式下的所有像素坐标对应的矫正坐标,形成每种显示模式所对应的模式与坐标映射关系。
可选的,每种显示模式下的每个像素坐标所对应的畸变矫正数据根据对应的畸变矫正公式对所述像素坐标进行畸变矫正得到;
所述畸变矫正数据被分解为整数部分和小数部分;
所述畸变矫正数据的整数部分被划分为N份数据进行存储,所述畸变矫正数据的小数部分被划分为M份数据进行存储;
其中,所述N根据整数部分对应的数据纹理的格式和畸变矫正数据的维度确定,所述M根据小数部分对应的数据纹理的格式和畸变矫正数据的维度确定。
可选的,所述整数部分对应的数据纹理的格式为红绿蓝透明度RGBA格式,所述畸变矫正数据的维度为2维,所述小数部分对应的数据纹理的格式为红绿RG格式;相应的,所述N为4,所述M为2,所述畸变矫正数据中包括横坐标和纵坐标。
可选的,所述畸变矫正数据的整数部分被划分为N份数据,包括:
所述畸变矫正数据中的横坐标对应的整数部分被划分为高位字节对应的一份数据和低位字节对应的一份数据,所述畸变矫正数据中的纵坐标对应的整数部分被划分为高位字节对应的一份数据和低位字节对应的一份数据;
所述畸变矫正数据的小数部分被划分为M份数据,包括:
所述M份数据中的一份数据通过对所述畸变矫正数据中的横坐标对应的小数部分乘以设定系数后取整得到;
所述M份数据中的另一份数据通过对所述畸变矫正数据中的纵坐标对应的小数部分乘以设定系数后取整得到。
可选的,所述映射坐标包括横坐标和纵坐标;
可选的,映射还原模块,包括:
纹理归一化单元,用于对所述第一纹理颜色数据进行归一化,得到第一归一化纹理数据,对所述第二纹理颜色数据进行归一化,得到第二归一化纹理数据;
横坐标还原单元,用于基于所述第一归一化纹理数据中对应通道的第一备选纹理颜色数据和所述第二归一化纹理数据中对应通道的第一备选纹理颜色数据进行运算,得到所述映射坐标中的横坐标;
纵坐标还原单元,用于基于所述第一归一化纹理数据中对应通道的第二备选纹理颜色数据和所述第二归一化纹理数据中对应通道的第二备选纹理颜色数据进行运算,得到所述映射坐标中的纵坐标。
可选的,坐标归一化模块,具体用于:将所述映射坐标除以对应坐标轴方向的图像分辨率,得到矫正坐标。
本发明实施例所提供的图像畸变矫正装置可执行本发明任意实施例所提供的图像畸变矫正方法,具备执行方法相应的功能模块和有益效果。
实施例四
图9示出了可以用来实施本发明的实施例的电子设备40的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图9所示,电子设备40包括至少一个处理器41,以及与至少一个处理器41通信连接的存储器,如只读存储器(ROM)42、随机访问存储器(RAM)43等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器41可以根据存储在只读存储器(ROM)42中的计算机程序或者从存储单元48加载到随机访问存储器(RAM)43中的计算机程序,来执行各种适当的动作和处理。在RAM 43中,还可存储电子设备40操作所需的各种程序和数据。处理器41、ROM 42以及RAM 43通过总线44彼此相连。输入/输出(I/O)接口45也连接至总线44。
电子设备40中的多个部件连接至I/O接口45,包括:输入单元46,例如键盘、鼠标等;输出单元47,例如各种类型的显示器、扬声器等;存储单元48,例如磁盘、光盘等;以及通信单元49,例如网卡、调制解调器、无线通信收发机等。通信单元49允许电子设备40通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器41为图形处理器。处理器41执行上文所描述的各个方法和处理,例如图像畸变矫正方法。
在一些实施例中,图像畸变矫正方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元48。在一些实施例中,计算机程序的部分或者全部可以经由ROM 42和/或通信单元49而被载入和/或安装到电子设备40上。当计算机程序加载到RAM 43并由处理器41执行时,可以执行上文描述的图像畸变矫正方法的一个或多个步骤。备选地,在其他实施例中,处理器41可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行图像畸变矫正方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种图像畸变矫正方法,其特征在于,应用于图形处理器,包括:
获取待展示图像,并将所述待展示图像转换为待展示纹理;
确定输出图像中每个像素坐标在所述待展示图像中对应的目标坐标,所述目标坐标根据预先确定的畸变矫正数据确定,所述畸变矫正数据按照整数部分和小数部分分别进行存储;
对于所述输出图像中每个像素坐标,根据所述像素坐标对应的目标坐标从所述待展示纹理中采样得到目标像素值;
基于各所述像素坐标对应的目标像素值形成畸变矫正后的输出图像。
2.根据权利要求1所述的方法,其特征在于,所述确定输出图像中每个像素坐标在所述待展示图像中对应的目标坐标,包括:
确定当前显示模式;
根据所述当前显示模式查询预先确定的模式与坐标映射关系,确定每个像素坐标对应的目标坐标。
3.根据权利要求2所述的方法,其特征在于,所述模式与坐标映射关系的确定步骤,包括:
针对每种显示模式下的每个像素坐标,获取所述像素坐标对应的畸变矫正数据;
根据所述畸变矫正数据的整数部分生成第一纹理颜色数据,根据所述畸变矫正数据的小数部分生成第二纹理颜色数据;
基于所述第一纹理颜色数据和所述第二纹理颜色数据进行坐标映射还原,得到所述像素坐标对应的映射坐标;
对所述映射坐标进行归一化,得到矫正坐标;
基于每种显示模式下的所有像素坐标对应的矫正坐标,形成每种显示模式所对应的模式与坐标映射关系。
4.根据权利要求3所述的方法,其特征在于,
每种显示模式下的每个像素坐标所对应的畸变矫正数据根据对应的畸变矫正公式对所述像素坐标进行畸变矫正得到;
所述畸变矫正数据被分解为整数部分和小数部分;
所述畸变矫正数据的整数部分被划分为N份数据进行存储,所述畸变矫正数据的小数部分被划分为M份数据进行存储;
其中,所述N根据整数部分对应的数据纹理的格式和畸变矫正数据的维度确定,所述M根据小数部分对应的数据纹理的格式和畸变矫正数据的维度确定。
5.根据权利要求4所述的方法,其特征在于,所述整数部分对应的数据纹理的格式为红绿蓝透明度RGBA格式,所述畸变矫正数据的维度为2维,所述小数部分对应的数据纹理的格式为红绿RG格式;相应的,所述N为4,所述M为2,所述畸变矫正数据中包括横坐标和纵坐标;
所述畸变矫正数据的整数部分被划分为N份数据,包括:
所述畸变矫正数据中的横坐标对应的整数部分被划分为高位字节对应的一份数据和低位字节对应的一份数据,所述畸变矫正数据中的纵坐标对应的整数部分被划分为高位字节对应的一份数据和低位字节对应的一份数据;
所述畸变矫正数据的小数部分被划分为M份数据,包括:
所述M份数据中的一份数据通过对所述畸变矫正数据中的横坐标对应的小数部分乘以设定系数后取整得到;
所述M份数据中的另一份数据通过对所述畸变矫正数据中的纵坐标对应的小数部分乘以设定系数后取整得到。
6.根据权利要求3所述的方法,其特征在于,所述映射坐标包括横坐标和纵坐标;所述基于所述第一纹理颜色数据和所述第二纹理颜色数据进行坐标映射还原,得到所述像素坐标对应的映射坐标,包括:
对所述第一纹理颜色数据进行归一化,得到第一归一化纹理数据,对所述第二纹理颜色数据进行归一化,得到第二归一化纹理数据;
基于所述第一归一化纹理数据中对应通道的第一备选纹理颜色数据和所述第二归一化纹理数据中对应通道的第一备选纹理颜色数据进行运算,得到所述映射坐标中的横坐标,
基于所述第一归一化纹理数据中对应通道的第二备选纹理颜色数据和所述第二归一化纹理数据中对应通道的第二备选纹理颜色数据进行运算,得到所述映射坐标中的纵坐标。
7.根据权利要求3所述的方法,其特征在于,所述对所述映射坐标进行归一化,得到矫正坐标,包括:
将所述映射坐标除以对应坐标轴方向的图像分辨率,得到矫正坐标。
8.一种图像畸变矫正装置,其特征在于,设置于图形处理器,包括:
图像获取模块,用于获取待展示图像,并将所述待展示图像转换为待展示纹理;
目标坐标确定模块,用于确定输出图像中每个像素坐标在所述待展示图像中对应的目标坐标,所述目标坐标根据预先确定的畸变矫正数据确定,所述畸变矫正数据按照整数部分和小数部分分别进行存储;
像素值采样模块,用于对于所述输出图像中每个像素坐标,根据所述像素坐标对应的目标坐标从所述待展示纹理中采样得到目标像素值;
输出图像确定模块,用于基于各所述像素坐标对应的目标像素值形成畸变矫正后的输出图像。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的图像畸变矫正方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的图像畸变矫正方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311776775.3A CN117745550A (zh) | 2023-12-21 | 2023-12-21 | 一种图像畸变矫正方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311776775.3A CN117745550A (zh) | 2023-12-21 | 2023-12-21 | 一种图像畸变矫正方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117745550A true CN117745550A (zh) | 2024-03-22 |
Family
ID=90254330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311776775.3A Pending CN117745550A (zh) | 2023-12-21 | 2023-12-21 | 一种图像畸变矫正方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117745550A (zh) |
-
2023
- 2023-12-21 CN CN202311776775.3A patent/CN117745550A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6039763B2 (ja) | 局所トーンマッピングのための方法、装置及び記憶媒体 | |
CN108242063B (zh) | 一种基于gpu加速的光场图像深度估计方法 | |
CN112714357B (zh) | 视频播放方法、视频播放装置、电子设备和存储介质 | |
CN111353955A (zh) | 一种图像处理方法、装置、设备和存储介质 | |
CN107220934B (zh) | 图像重建方法及装置 | |
CN111179370B (zh) | 一种图片生成方法、装置、电子设备及存储介质 | |
WO2022213716A1 (zh) | 图像格式转换方法、装置、设备、存储介质及程序产品 | |
CN115147695A (zh) | 融合图像缩放与颜色空间转换的方法、装置及设备 | |
CN110717864A (zh) | 一种图像增强方法、装置、终端设备及计算机可读介质 | |
CN111738950B (zh) | 图像处理方法及装置 | |
CN116453470B (zh) | 图像显示方法、装置、电子设备及计算机可读存储介质 | |
US20220004857A1 (en) | Neural network processing apparatus, neural network processing method, and neural network processing program | |
CN117745550A (zh) | 一种图像畸变矫正方法、装置、电子设备及存储介质 | |
CN115880461A (zh) | 一种增强现实图像生成方法、装置、设备及存储介质 | |
CN115760578A (zh) | 一种图像处理方法、装置、电子设备及存储介质 | |
CN114022357A (zh) | 图像重建方法、图像重建模型的训练方法、装置和设备 | |
CN114266803A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN116823700A (zh) | 一种图像质量的确定方法和装置 | |
CN116309160B (zh) | 图像分辨率修复方法、装置、设备及存储介质 | |
CN111583111A (zh) | 动态范围图像压缩方法、计算机设备及存储装置 | |
CN111179158A (zh) | 图像处理方法、装置、电子设备及介质 | |
CN113194267B (zh) | 图像处理方法及装置、拍照方法及装置 | |
CN114842485B (zh) | 一种字幕去除方法、装置及电子设备 | |
CN115147280B (zh) | 深度学习模型的训练方法、图像处理方法、装置和设备 | |
CN112508790B (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 |