CN114663541A - 图像处理方法、装置、电子设备和存储介质 - Google Patents
图像处理方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN114663541A CN114663541A CN202210294449.8A CN202210294449A CN114663541A CN 114663541 A CN114663541 A CN 114663541A CN 202210294449 A CN202210294449 A CN 202210294449A CN 114663541 A CN114663541 A CN 114663541A
- Authority
- CN
- China
- Prior art keywords
- image
- processing unit
- grid
- central processing
- grid point
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 200
- 238000003672 processing method Methods 0.000 title abstract description 12
- 238000000034 method Methods 0.000 claims abstract description 26
- 238000013507 mapping Methods 0.000 claims description 34
- 238000012937 correction Methods 0.000 claims description 25
- 238000006243 chemical reaction Methods 0.000 claims description 24
- 239000011159 matrix material Substances 0.000 claims description 15
- 238000005516 engineering process Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 12
- 230000009466 transformation Effects 0.000 claims description 9
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000008676 import Effects 0.000 claims description 7
- 238000009877 rendering Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/80—Geometric correction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
Abstract
本申请涉及一种图像处理方法、装置、电子设备和存储介质。所述方法包括:中央处理器计算图像处理后的结果图像对应的结果图像网格中各个第一网格点的像素坐标;中央处理器计算图像处理前的原始图像对应的原始图像网格中各个第二网格点的像素坐标;中央处理器将原始图像作为输入纹理,将各个第一网格点的像素坐标作为顶点坐标,将各个第二网格点的像素坐标作为纹理坐标,分别导入到图形处理器的着色器中;以及中央处理器从图形处理器获取着色器输出的输出纹理,作为图像处理后的结果图像。采用本方法能够提升图像处理效率。
Description
技术领域
本申请涉及图像技术领域,特别是涉及一种图像处理方法、装置、电子设备和存储介质。
背景技术
图像处理技术可以对原始图像进行处理以得到所需效果的结果图像。
例如,超广角相机模组已广泛应用于例如手机等终端设备中,其相比于常规相机模组能够获取更宽广的视野,但同时其拍摄的原始图像通常具有图像畸变。如图1所示,为一个实施例的超广角相机模组拍摄的原始图像。从图1中可以看出,原始图像中四周边缘区域产生了明显的弯曲变形,即图像畸变,而且越远离图像中心具有越严重的畸变。为了消除原始图像中的图像畸变,可以通过对相机模组做标定得到相机内参和畸变参数,以用于对相机拍摄的原始图像进行畸变校正处理,以消除原始图像中的图像畸变现象而得到畸变校正后的结果图像,畸变校正处理后得到的结果图像参见图2所示。
然而在实际应用中,原始图像的分辨率越来越大,例如2K以上的分辨率越发常见,部分应用功能对于运算得到结果图像的实时性具有较高要求,例如对于预览功能而言,一般要达到20FPS以上才没有明显卡顿感。而利用中央处理器(Central Processing Unit,CPU)实现上述图像处理存在运算资源占用过高、运算速率难以满足应用的实时性需求的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够更快速高效地实现对原始图像进行图像处理的图像处理方法、装置、电子设备和存储介质。
一种图像处理方法,包括:中央处理器计算图像处理后的结果图像对应的结果图像网格中各个第一网格点的像素坐标;所述中央处理器计算图像处理前的原始图像对应的原始图像网格中各个第二网格点的像素坐标;所述中央处理器将所述原始图像作为输入纹理,将所述各个第一网格点的像素坐标作为顶点坐标,将所述各个第二网格点的像素坐标作为纹理坐标,分别导入到图形处理器的着色器中;以及所述中央处理器从所述图形处理器获取所述着色器输出的输出纹理,作为图像处理后的所述结果图像。
在一个实施例中,所述中央处理器计算图像处理后的结果图像对应的结果图像网格中各个第一网格点的像素坐标包括:中央处理器根据预期的结果图像的尺寸,建立对应的结果图像网格,所述结果图像网格包括在所述结果图像上矩阵分布的多个第一网格点;所述中央处理器确定所述多个第一网格点中每个第一网格点在所述结果图像中的像素坐标。
在一个实施例中,所述结果图像的宽为W、高为H,所述矩阵分布的多个第一网格点包括以正方形矩阵分布的多个第一网格点,所述正方形矩阵中每相邻四个第一网格点构成的一个正方形网格的边长为d;所述中央处理器确定在所述多个第一网格点中,宽度方向索引为x且高度方向索引为y的第一网格点i在所述结果图像中的像素坐标为(ui′,vi′),其中,并且其中:
在一个实施例中,所述中央处理器计算图像处理前的原始图像对应的原始图像网格中各个第二网格点的像素坐标包括:所述中央处理器获取结果图像中的像素坐标与原始图像中的像素坐标之间的坐标映射关系;所述中央处理器根据所述坐标映射关系,将所述各个第一网格点的像素坐标转换得到图像处理前的各个第二网格点的像素坐标。
在一个实施例中,所述坐标映射关系根据畸变校正转换关系、仿射变换转换关系、球面投影转换关系中的一种或多种组合确定。
在一个实施例中,当所述结果图像具有与所述原始图像不同的分辨率时,所述坐标映射关系还根据所述结果图像的分辨率和所述原始图像的分辨率确定。
在一个实施例中,所述中央处理器将所述原始图像作为输入纹理,将所述各个第一网格点的像素坐标作为顶点坐标,将所述各个第二网格点的像素坐标作为纹理坐标,分别导入到图形处理器的着色器中,包括:所述中央处理器利用平台共享内存技术,将所述中央处理器中的原始图像作为输入纹理,将所述中央处理器中的所述各个第一网格点的像素坐标作为顶点坐标,将所述中央处理器中的所述各个第二网格点的像素坐标作为纹理坐标,分别导入到图形处理器的着色器中。
在一个实施例中,所述着色器配置为将输入纹理从纹理坐标映射到顶点坐标,以得到输出纹理。
在一个实施例中,所述中央处理器从所述图形处理器获取所述着色器输出的输出纹理,作为图像处理后的所述结果图像包括:所述中央处理器利用平台共享内存技术,从所述图形处理器获取所述着色器输出的输出纹理,作为图像处理后的所述结果图像。
在一个实施例中,所述原始图像为相机模组拍摄得到的图像,所述中央处理器在获取所述输出纹理作为所述结果图像之后,还将所述结果图像在显示屏上显示作为预览图像。
一种图像处理装置,包括:
第一网格点坐标计算模块,用于使中央处理器计算图像处理后的结果图像对应的结果图像网格中各个第一网格点的像素坐标;
第二网格点坐标计算模块,用于使所述中央处理器计算图像处理前的原始图像对应的原始图像网格中各个第二网格点的像素坐标;
着色器导入模块,用于使所述中央处理器将所述原始图像作为输入纹理,将所述各个第一网格点的像素坐标作为顶点坐标,将所述各个第二网格点的像素坐标作为纹理坐标,分别导入到图形处理器的着色器中;以及
着色器导出模块,用于使所述中央处理器从所述图形处理器获取所述着色器输出的输出纹理,作为图像处理后的所述结果图像。
一种电子设备,包括存储器、中央处理器和图形处理器,所述存储器存储有计算机程序,所述中央处理器执行所述计算机程序时实现以下步骤:所述中央处理器计算图像处理后的结果图像对应的结果图像网格中各个第一网格点的像素坐标;所述中央处理器计算图像处理前的原始图像对应的原始图像网格中各个第二网格点的像素坐标;所述中央处理器将所述原始图像作为输入纹理,将所述各个第一网格点的像素坐标作为顶点坐标,将所述各个第二网格点的像素坐标作为纹理坐标,分别导入到所述图形处理器的着色器中;以及所述中央处理器从所述图形处理器获取所述着色器输出的输出纹理,作为图像处理后的所述结果图像。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被中央处理器执行时实现以下步骤:中央处理器计算图像处理后的结果图像对应的结果图像网格中各个第一网格点的像素坐标;所述中央处理器计算图像处理前的原始图像对应的原始图像网格中各个第二网格点的像素坐标;所述中央处理器将所述原始图像作为输入纹理,将所述各个第一网格点的像素坐标作为顶点坐标,将所述各个第二网格点的像素坐标作为纹理坐标,分别导入到图形处理器的着色器中;以及所述中央处理器从所述图形处理器获取所述着色器输出的输出纹理,作为图像处理后的所述结果图像。
上述图像处理方法、装置、电子设备和存储介质,中央处理器计算图像处理后的结果图像对应的结果图像网格中各个第一网格点的像素坐标,并计算对应的图像处理前的原始图像对应的原始图像网格中各个第二网格点的像素坐标,从而得到了图像处理前后对应的网格点映射关系,中央处理器只需要计算各网格点之间的坐标映射关系,而无需计算原始图像中所有像素的所有坐标映射关系,能够大幅减轻中央处理器的运算负荷,同时将算得的各个第一网格点的像素坐标与各个第二网格点的像素坐标所代表的网格点映射关系、以及原始图像导入到图形处理器的着色器中进行运算,从而巧妙地利用了图形处理器的着色器的多线程并行处理特性以及双线性插值采样操作结合三角形渲染操作特性,能够通过着色器高效地实现对图像处理后的结果图像的绘制。从而能够在减轻中央处理器的运算负荷的同时提升图像处理处理效率,提升图像处理输出结果图像的实时性。
附图说明
图1为一个示例的原始图像;
图2为一个示例的畸变校正后的结果图像;
图3为一个实施例中的电子设备的示意图;
图4为一个实施例中的图像处理方法的流程示意图;
图5为一个实施例中的结果图像网格和原始图像网格的示意图;
图6为一个实施例中的执行三角形划分的示意图;
图7为一个实施例中的图像处理装置的示意框图;
图8为一个实施例中的电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的图像处理方法,可以应用于如图3所示的电子设备300中,该电子设备300可以但不限于各种智能手机、数码相机、个人计算机、笔记本电脑、平板电脑等。该电子设备300上可以装载有相机301,该电子设备300可以通过相机301实时拍摄得到原始图像,并对该原始图像执行本申请实施例的图像处理方法,以对该原始图像进行图像处理,得到校正后的结果图像。在替代实施例中,原始图像也可以由电子设备300之外的其他外部设备拍摄得到,电子设备300可以从网络下载或者从外部设备中接收原始图像并存储,然后电子设备300可以对从外部设备获取的原始图像执行本申请实施例的图像处理方法,以对该原始图像进行图像处理,得到校正后的结果图像。该电子设备300上还可以装载有显示屏302,从而该电子设备300可以将得到的校正后的结果图像实时显示在该显示屏302上以供用户查看。
在一个实施例中,如图4所示,提供了一种图像处理方法,以该方法应用于图3中所示的电子设备300为例进行说明,该方法可以包括以下步骤S410-S440。
步骤S410,中央处理器计算图像处理后的结果图像对应的结果图像网格中各个第一网格点的像素坐标。
在一个实施例中,步骤S410可以包括:中央处理器根据预期的结果图像的尺寸,建立对应的结果图像网格,结果图像网格包括在结果图像上矩阵分布的多个第一网格点;中央处理器确定多个第一网格点中每个第一网格点在结果图像中的像素坐标。
示例地,可以根据预期需要得到的结果图像的尺寸,例如根据结果图像的宽高比,建立M行×N列矩阵分布的M×N个第一网格点构成的结果图像网格,结果图像网格可以代表结果图像中各个区域的像素点所处的坐标位置。该M行×N列的结果图像网格可以均匀覆盖结果图像。
如图5所示,结果图像网格中各个第一网格点i的值可以表示为(ui′,vi′)。其中ui′为第一网格点i在像素坐标系下的横坐标,vi′为第一网格点i在像素坐标系下的纵坐标。
以所需的结果图像的长宽比为4:3为例(例如分辨率为1024×768),则M可以取80,N可以取60。在其他示例中,M和N的取值可以根据实际需求确定,例如可以根据结果图像的长宽比、分辨率等来确定。M和N的取值越大,则对图像的处理精度越高,然而相应地需要占用的处理资源越多,处理速率越低。
在根据结果图像的尺寸建立了对应的结果图像网格后,即可以相应地确定结果图像网格中每个第一网格点在像素坐标系下的像素坐标(ui′,vi′)。
例如,在一个实施例中,在结果图像的宽为W、高为H,并且矩阵分布的多个第一网格点包括以正方形矩阵分布的多个第一网格点,正方形矩阵中每相邻四个第一网格点构成的一个正方形网格的边长为d的情况下,则结果图像网格中的第一网格点沿宽度方向的数量为沿高度方向的数量为相应地,可以构建每个第一网格点i的索引值(x,y),x为宽度方向的索引,y为宽度方向的索引,该索引值(x,y)代表了第一网格点i在结果图像网格中的相对位置,即可以表明其是第x行第y列(x、y从0计起)的第一网格点,每个第一网格点可具有唯一的索引值。相应地,在确定每个第一网格点在结果图像中的像素坐标时,中央处理器可以确定在多个第一网格点中,宽度方向索引为x且高度方向索引为y的第一网格点i在结果图像中的像素坐标为(ui′,vi′)。其中:
步骤S420,中央处理器计算图像处理前的原始图像对应的原始图像网格中各个第二网格点的像素坐标。
其中,原始图像是由相机拍摄的未经处理的图像,原始图像中存在图像畸变。相机可以包括能够捕获图像的各类器件,例如摄像头、相机模组等等。
在一个实施例中,步骤S420包括:中央处理器获取结果图像中的像素坐标与原始图像中的像素坐标之间的坐标映射关系;中央处理器根据坐标映射关系,将各个第一网格点的像素坐标转换得到图像处理前的各个第二网格点的像素坐标。
参见图5所示,原始图像网格中的多个第二网格点与结果图像中的多个第一网格点具有一一对应关系。例如在结果图像网格由M行×N列矩阵分布的第一网格点构成的情况下,原始图像网格也对应的由M行×N列矩阵分布的第二网格点构成。在确定了结果图像网格以及坐标映射关系后,对结果图像网格中的每个第一网格点的像素坐标执行坐标映射关系的转换即可对应确定原始图像网格中每个第二网格点的像素坐标,因而,对于给定的结果图像网格,将确定什么样的原始图像网格取决于坐标映射关系的设定。从而,可以根据不同的应用需求设计不同的坐标映射关系,以实现不同的图像处理效果。
以需要对原始图像进行畸变校正为例,在本实施例中,为了实现畸变校正处理,坐标映射关系可以根据畸变校正转换关系确定。在其他实施例中,坐标映射关系替代地或附加地还可以根据仿射变换转换关系、球面投影转换关系等确定,以相应地实现对原始图像的仿射变换处理、球面投影处理等。
在原始图像和所需得到的结果图像具有相同的分辨率的情况下,一般仅需要对原始图像进行例如畸变校正、仿射变换、球面投影等基本的图像映射处理即可得到相应的图像处理效果,在这种情况下,坐标映射关系可以根据应用所需而根据畸变校正转换关系、仿射变换转换关系、球面投影转换关系中的一种或多种组合来确定。
但是,在某些情况下,例如在预览功能中,所需的结果图像可能与原始图像具有不同的分辨率,这就需要对图像进行更多处理以确保得到的结果图像具有所期望的结果图像分辨率。
在一个实施例中,当结果图像具有与原始图像不同的分辨率时,在步骤S410之前还可以包括预先对原始图像进行缩放和/或裁剪处理而得到处理后的具有所需结果图像分辨率的原始图像,然后再开始执行步骤S410-S440以确定所需结果图像分辨率的结果图像,或者,可以先对原始图像执行步骤S410-S440得到原始图像分辨率的结果图像,然后在步骤S440之后还包括对原始图像分辨率的结果图像进行缩放和/或裁剪处理以确定所需结果图像分辨率的结果图像。
替代地,在另一个实施例中,当结果图像具有与原始图像不同的分辨率时,坐标映射关系在根据畸变校正转换关系、仿射变换转换关系、球面投影转换关系中的一种或多种组合来确定的基础上,还可以根据结果图像的分辨率和原始图像的分辨率确定。例如还根据结果图像的分辨率与原始图像的分辨率之间的缩放比例确定,以使得步骤S420中通过坐标映射关系转换得到的原始图像网格匹配原始图像的尺寸,具体地,可以使得原始图像网格尽可能多地覆盖原始图像而不会超出原始图像的边界。从而使得坐标映射关系在执行基本的图像映射处理之外还执行图像缩放处理,能够进一步提升图像处理效率。
以原始图像和结果图像具有相同的分辨率,并且以对原始图像进行畸变校正为例,相应地,坐标映射关系可以为畸变校正转换关系。
超广角相机模组中的畸变一般由透镜形状引起的径向畸变和相机组装偏差引起的切向畸变两部分组成。假设畸变校正后结果图像中任意第一像素点的像素坐标为(ui′,vi′),该第一像素点的坐标投影到畸变校正前的原始图像中对应的第二像素点的像素坐标为(ui,vi),则第一像素点的坐标与对应的第二像素点的坐标可满足预定的畸变校正转换关系{(ui,vi),(ui′,vi′)},该畸变校正转换关系{(ui,vi),(ui′,vi′)}可以根据相机模组的相机内参和畸变参数确定,畸变校正转换关系将决定如何对原始图像进行畸变校正以确定校正后的结果图像。相机内参和畸变参数可以通过对相机进行标定而确定,相机内参和畸变参数作为相机的固有参数,也可以从生产商等其他途径获取。
在一个实施例中,畸变校正后的第一像素点的像素坐标(ui′,vi′)与对应的畸变校正前的第二像素点的像素坐标(ui,vi)之间可满足如下畸变校正转换关系:
其中,fx、fy、cx、cy为相机内参参数,fx=αf,fy=βf,f为成像相机的焦距,α为焦距f在像素坐标系x轴上的每单位距离像素个数,β为焦距f在像素坐标系y轴上的每单位距离像素个数,cx为光心在像素坐标系x轴上的坐标,cy为光心在像素坐标系y轴上的坐标。在通过标定或其他方式确定了相机内参之后,则fx、fy、cx、cy也可以相应地确定。
其中,k1、k2、k3、k4、k5、k6为径向畸变参数,p1、p2为切向畸变参数。这些参数也同样可以通过对相机进行标定或其他方式而确定。
从而在相机内参和畸变参数确定的情况下,可以确定上述畸变校正转换关系,作为所述坐标映射关系。
以上示例性地描述了畸变校正转换关系的设定,本领域技术人员可以理解,对于仿射变换转换关系、球面投影转换关系也可以同理地通过类似的方式来设定。从而可以根据不同的图像处理需求来设计不同的坐标映射关系。
在此步骤S420中,利用设定的坐标映射关系,中央处理器可以计算步骤S410中确定的每个第一网格点的像素坐标(ui′,vi′)对应的每个第二网格点的像素坐标(ui,vi)。相应地,也就确定了这些第二网格点构成的原始图像网格。
步骤S430,中央处理器将原始图像作为输入纹理,将各个第一网格点的像素坐标作为顶点坐标,将各个第二网格点的像素坐标作为纹理坐标,分别导入到图形处理器(Graphic Processing Unit,GPU)的着色器(Shader)中。
着色器可以实现对图像的渲染。在一个实施例中,着色器配置为将输入纹理从纹理坐标映射到顶点坐标,以得到输出纹理。具体地,着色器在接收到输入纹理后,创建与输入纹理对应的输出纹理以用于保存将要渲染并输出的结果图像,该输出纹理具有与结果图像相同的分辨率。然后,参见图6所示,着色器将输出纹理对应的顶点坐标划分为多个小三角形,利用图形处理器采样时的三角形插值特性计算每个三角形内部的输出纹理的每个像素点对应的纹理坐标,结合图形处理器的双线性插值算法,根据输入纹理计算每个纹理坐标对应的颜色值,从而确定了输出纹理中每个像素点的颜色值,即渲染得到了输出纹理。由于着色器是多线程并行执行计算的,从而能够更快速地完成对图像的渲染。
可以采用多种不同的方式来从中央处理器向图形处理器传输数据。
在一个实施例中,步骤S430可以包括:中央处理器利用平台共享内存技术,将中央处理器中的原始图像作为输入纹理,将中央处理器中的各个第一网格点的像素坐标作为顶点坐标,将中央处理器中的各个第二网格点的像素坐标作为纹理坐标,分别导入到图形处理器的着色器中。平台共享内存技术允许在无需拷贝数据的情况下实现中央处理器与图形处理器之间的快速数据传输。以安卓(Android)平台为例,可以通过AHardwareBuffer配合EGLImageKHR来实现平台共享内存技术,从而可以通过平台共享内存技术,将中央处理器中的数据快速导入到图形处理器中。
在另一个实施例中,步骤S430也可以包括:中央处理器将原始图像作为输入纹理,将中央处理器中的各个第一网格点的像素坐标作为顶点坐标,将中央处理器中的各个第二网格点的像素坐标作为纹理坐标拷贝到显存中,图形处理器的着色器分别从显存中读取输入纹理、顶点坐标和纹理坐标。
在其他实施例中,中央处理器也可以将部分数据通过平台共享内存技术传输到图形处理器,而将另一部分数据通过拷贝到显存来传输到图形处理器。
步骤S440,中央处理器从图形处理器获取着色器输出的输出纹理,作为图像处理后的结果图像。
与上述步骤S430中同理地,也可以采用多种不同的方式来从图形处理器向中央处理器传输数据。
在一个实施例中,步骤S440可以包括:中央处理器利用平台共享内存技术,从图形处理器获取着色器输出的输出纹理,作为图像处理后的结果图像。例如可以将图形处理器完成渲染后的输出纹理读取到中央处理器中的输出缓冲器(buffer),从而可以通过平台共享内存技术,将图形处理器中的数据快速导出到中央处理器中。
在另一个实施例中,步骤S440也可以包括:图形处理器将渲染得到的输出纹理拷贝到显存中,中央处理器从显存中读取输出纹理,作为图像处理后的结果图像。
在其他实施例中,图形处理器也可以将部分数据通过平台共享内存技术传输到中央处理器,而将另一部分数据通过拷贝到显存来传输到中央处理器。
在得到校正后的结果图像后,中央处理器还可以输出结果图像,例如控制显示器显示结果图像,以用于不同的应用需求。例如,在应用于预览功能的情况下,在一个实施例中,原始图像为相机模组拍摄得到的图像,中央处理器在获取输出纹理作为结果图像之后,还将结果图像在显示屏上显示作为预览图像。在预览功能中,结果图像可以具有比原始图像的分辨率更小的分辨率。以对原始图像进行畸变校正处理得到结果图像以用于预览功能为例,发明人在实际测试中发现,在MTK/高通的中端移动平台上,利用本申请的方法对输入分辨率为2K的原始图像进行畸变校正处理,运算耗时可达30ms以内,满足了预览功能的实时性要求。
上述图像处理方法中,中央处理器计算图像处理后的结果图像对应的结果图像网格中各个第一网格点的像素坐标,并计算对应的图像处理前的原始图像对应的原始图像网格中各个第二网格点的像素坐标,从而得到了图像处理前后对应的网格点映射关系,中央处理器只需要计算各网格点之间的坐标映射关系,而无需计算原始图像中所有像素的所有坐标映射关系,能够大幅减轻中央处理器的运算负荷,同时将算得的各个第一网格点的像素坐标与各个第二网格点的像素坐标所代表的网格点映射关系、以及原始图像导入到图形处理器的着色器中进行运算,从而巧妙地利用了图形处理器的着色器的多线程并行处理特性以及双线性插值采样操作结合三角形渲染操作特性,能够通过着色器高效地实现对图像处理后的结果图像的绘制。从而能够在减轻中央处理器的运算负荷的同时提升图像处理处理效率,提升图像处理输出结果图像的实时性。
应该理解的是,虽然图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种图像处理装置700,包括:第一网格点坐标计算模块710、第二网格点坐标计算模块720、着色器导入模块730和着色器导出模块740,其中:
第一网格点坐标计算模块710,用于使中央处理器计算图像处理后的结果图像对应的结果图像网格中各个第一网格点的像素坐标;
第二网格点坐标计算模块720,用于使中央处理器计算图像处理前的原始图像对应的原始图像网格中各个第二网格点的像素坐标;
着色器导入模块730,用于使中央处理器将原始图像作为输入纹理,将各个第一网格点的像素坐标作为顶点坐标,将各个第二网格点的像素坐标作为纹理坐标,分别导入到图形处理器的着色器中;以及
着色器导出模块740,用于使中央处理器从图形处理器获取着色器输出的输出纹理,作为图像处理后的结果图像。
在一个实施例中,图像处理装置700还包括着色器渲染模块750,着色器渲染模块750用于使着色器将输入纹理从纹理坐标映射到顶点坐标,以得到输出纹理。
在一个实施例中,图像处理装置700还包括显示模块760,显示模块760用于在中央处理器在获取输出纹理作为结果图像之后,还使中央处理器将结果图像在显示屏上显示作为预览图像。
关于图像处理装置700的具体限定可以参见上文中对于图像处理方法的限定,在此不再赘述。上述图像处理装置700中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于电子设备中的处理器中,也可以以软件形式存储于电子设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,如图8所示,提供了一种电子设备300,包括存储器303、中央处理器304和图形处理器305,中央处理器304与图形处理器305之间可以例如通过平台共享内存技术和/或通过显存而通信连接,存储器303中存储有计算机程序,该中央处理器304执行计算机程序时实现以下步骤:
中央处理器304计算图像处理后的结果图像对应的结果图像网格中各个第一网格点的像素坐标;
中央处理器304计算图像处理前的原始图像对应的原始图像网格中各个第二网格点的像素坐标;
中央处理器304将原始图像作为输入纹理,将各个第一网格点的像素坐标作为顶点坐标,将各个第二网格点的像素坐标作为纹理坐标,分别导入到图形处理器305的着色器中;以及
中央处理器304从图形处理器305获取着色器输出的输出纹理,作为图像处理后的结果图像。
在一个实施例中,如图8所示,电子设备300还可以包括与电子设备300耦合的相机301。所述“耦合”旨在既包括直接将相机301设置在该电子设备300中的形式,也包括将相机301设置在电子设备300之外(例如该相机804设置在其他终端设备上)、并且该相机301与该电子设备300之间通信连接的形式。相机301用于拍摄原始图像,并将原始图像传输至中央处理器304;中央处理器304从相机301接收原始图像。
在一个实施例中,如图8所示,电子设备300还可以包括显示器302;中央处理器304执行计算机程序时,还控制显示器302显示结果图像。
在其他实施例中,中央处理器304执行计算机程序时还实现如上任一实施例所述的方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被中央处理器执行时实现以下步骤:
中央处理器计算图像处理后的结果图像对应的结果图像网格中各个第一网格点的像素坐标;
中央处理器计算图像处理前的原始图像对应的原始图像网格中各个第二网格点的像素坐标;
中央处理器将原始图像作为输入纹理,将各个第一网格点的像素坐标作为顶点坐标,将各个第二网格点的像素坐标作为纹理坐标,分别导入到图形处理器的着色器中;以及
中央处理器从图形处理器获取着色器输出的输出纹理,作为图像处理后的结果图像。
在其他实施例中,计算机程序被中央处理器执行时还实现如上任一实施例所述的方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (13)
1.一种图像处理方法,所述方法包括:
中央处理器计算图像处理后的结果图像对应的结果图像网格中各个第一网格点的像素坐标;
所述中央处理器计算图像处理前的原始图像对应的原始图像网格中各个第二网格点的像素坐标;
所述中央处理器将所述原始图像作为输入纹理,将所述各个第一网格点的像素坐标作为顶点坐标,将所述各个第二网格点的像素坐标作为纹理坐标,分别导入到图形处理器的着色器中;以及
所述中央处理器从所述图形处理器获取所述着色器输出的输出纹理,作为图像处理后的所述结果图像。
2.根据权利要求1所述的方法,其特征在于,所述中央处理器计算图像处理后的结果图像对应的结果图像网格中各个第一网格点的像素坐标包括:
中央处理器根据预期的结果图像的尺寸,建立对应的结果图像网格,所述结果图像网格包括在所述结果图像上矩阵分布的多个第一网格点;
所述中央处理器确定所述多个第一网格点中每个第一网格点在所述结果图像中的像素坐标。
4.根据权利要求1所述的方法,其特征在于,所述中央处理器计算图像处理前的原始图像对应的原始图像网格中各个第二网格点的像素坐标包括:
所述中央处理器获取结果图像中的像素坐标与原始图像中的像素坐标之间的坐标映射关系;
所述中央处理器根据所述坐标映射关系,将所述各个第一网格点的像素坐标转换得到图像处理前的各个第二网格点的像素坐标。
5.根据权利要求4所述的方法,其特征在于,所述坐标映射关系根据畸变校正转换关系、仿射变换转换关系、球面投影转换关系中的一种或多种组合确定。
6.根据权利要求5所述的方法,其特征在于,当所述结果图像具有与所述原始图像不同的分辨率时,所述坐标映射关系还根据所述结果图像的分辨率和所述原始图像的分辨率确定。
7.根据权利要求1至6中任意一项所述的方法,其特征在于,所述中央处理器将所述原始图像作为输入纹理,将所述各个第一网格点的像素坐标作为顶点坐标,将所述各个第二网格点的像素坐标作为纹理坐标,分别导入到图形处理器的着色器中,包括:
所述中央处理器利用平台共享内存技术,将所述中央处理器中的原始图像作为输入纹理,将所述中央处理器中的所述各个第一网格点的像素坐标作为顶点坐标,将所述中央处理器中的所述各个第二网格点的像素坐标作为纹理坐标,分别导入到图形处理器的着色器中。
8.根据权利要求1至6中任意一项所述的方法,其特征在于,所述着色器将输入纹理从纹理坐标映射到顶点坐标,以得到输出纹理。
9.根据权利要求1至6中任意一项所述的方法,其特征在于,所述中央处理器从所述图形处理器获取所述着色器输出的输出纹理,作为图像处理后的所述结果图像包括:
所述中央处理器利用平台共享内存技术,从所述图形处理器获取所述着色器输出的输出纹理,作为图像处理后的所述结果图像。
10.根据权利要求1至6中任意一项所述的方法,其特征在于,所述原始图像为相机模组拍摄得到的图像,所述中央处理器在获取所述输出纹理作为所述结果图像之后,还将所述结果图像在显示屏上显示作为预览图像。
11.一种图像处理装置,其特征在于,所述装置包括:
第一网格点坐标计算模块,用于使中央处理器计算图像处理后的结果图像对应的结果图像网格中各个第一网格点的像素坐标;
第二网格点坐标计算模块,用于使所述中央处理器计算图像处理前的原始图像对应的原始图像网格中各个第二网格点的像素坐标;
着色器导入模块,用于使所述中央处理器将所述原始图像作为输入纹理,将所述各个第一网格点的像素坐标作为顶点坐标,将所述各个第二网格点的像素坐标作为纹理坐标,分别导入到图形处理器的着色器中;以及
着色器导出模块,用于使所述中央处理器从所述图形处理器获取所述着色器输出的输出纹理,作为图像处理后的所述结果图像。
12.一种电子设备,包括存储器、中央处理器和图形处理器,所述存储器存储有计算机程序,其特征在于,所述中央处理器执行所述计算机程序时实现权利要求1至10中任一项所述方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被中央处理器执行时实现权利要求1至10中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210294449.8A CN114663541A (zh) | 2022-03-23 | 2022-03-23 | 图像处理方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210294449.8A CN114663541A (zh) | 2022-03-23 | 2022-03-23 | 图像处理方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114663541A true CN114663541A (zh) | 2022-06-24 |
Family
ID=82031915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210294449.8A Pending CN114663541A (zh) | 2022-03-23 | 2022-03-23 | 图像处理方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114663541A (zh) |
-
2022
- 2022-03-23 CN CN202210294449.8A patent/CN114663541A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101017802B1 (ko) | 영상 왜곡 보정 | |
CN109996023B (zh) | 图像处理方法和装置 | |
CN113643414B (zh) | 一种三维图像生成方法、装置、电子设备及存储介质 | |
CN109286758B (zh) | 一种高动态范围图像的生成方法、移动终端及存储介质 | |
CN108242063B (zh) | 一种基于gpu加速的光场图像深度估计方法 | |
US12020345B2 (en) | Image signal processor, method of operating the image signal processor, and application processor including the image signal processor | |
WO2020087729A1 (zh) | 一种图像处理方法及装置、电子设备、存储介质 | |
CN112258418A (zh) | 图像畸变校正方法、装置、电子设备和存储介质 | |
CN111598777A (zh) | 天空云图的处理方法、计算机设备和可读存储介质 | |
CN113838138B (zh) | 一种优化特征提取的***标定方法、***、装置和介质 | |
CN114493988A (zh) | 一种图像虚化方法、图像虚化装置及终端设备 | |
CN113963072B (zh) | 双目摄像头标定方法、装置、计算机设备和存储介质 | |
GB2551426A (en) | Hardware optimisation for generating 360° images | |
CN113222862A (zh) | 图像畸变校正方法、装置、电子设备和存储介质 | |
CN111371987B (zh) | 图像处理方法和装置、电子设备、计算机可读存储介质 | |
CN114677286A (zh) | 一种图像处理方法、装置、存储介质及终端设备 | |
CN114663541A (zh) | 图像处理方法、装置、电子设备和存储介质 | |
CN113436247B (zh) | 一种图像处理方法、装置、电子设备及存储介质 | |
CN115147389A (zh) | 图像处理方法、设备以及计算机可读存储介质 | |
CN115049572A (zh) | 图像处理方法、装置、电子设备和计算机可读存储介质 | |
CN113012302A (zh) | 三维全景图生成方法、装置、计算机设备和存储介质 | |
CN113902644A (zh) | 一种图像处理方法、装置、设备以及存储介质 | |
US20200351456A1 (en) | Image processing device, image processing method, and program | |
CN108696670A (zh) | 在成像时进行瓦片重用 | |
CN111461991B (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 |