一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

图像处理方法、装置、电子设备和计算机存储介质与流程

2022-06-01 12:30:32 来源:中国专利 TAG:


1.本公开涉及计算机视觉技术领域,尤其涉及一种图像处理方法、装置、电子设备和计算机存储介质。


背景技术:

2.鱼眼相机由于其视场角范围大,感知信息丰富的特点,在视频监控、自动驾驶、视频会议和机器人导航等领域都具有很广泛的应用。
3.在相关技术中,可以将鱼眼相机采集的鱼眼图转化为全景图像,然而,针对全景图像中的像素点,如何确定在鱼眼图中的坐标位置,是亟待解决的技术问题。


技术实现要素:

4.本公开实施例提供了图像处理的技术方案。
5.本公开实施例提供了一种图像处理方法,所述方法包括:
6.获取鱼眼相机采集的鱼眼图;
7.根据所述鱼眼图对应的经纬度展开图,将所述鱼眼图转换为球面坐标系下的球面图像;
8.将所述球面图像转换为屏幕坐标系下的全景图像;
9.在所述球面图像中,确定与所述全景图像中的目标像素点对应的目标球面坐标点;所述目标像素点为所述全景图像中的任意一个像素点;
10.根据所述目标球面坐标点的经纬度坐标、以及所述鱼眼图和所述经纬度展开图之间的坐标映射关系,确定所述目标像素点在所述鱼眼图中的坐标;
11.根据所述目标像素点在所述鱼眼图中的坐标,对所述全景图像进行处理。
12.在一些实施例中,所述根据所述目标球面坐标点的经纬度坐标、以及所述鱼眼图和所述经纬度展开图之间的坐标映射关系,确定所述目标像素点在所述鱼眼图中的坐标,包括:
13.根据所述目标球面坐标点的经纬度坐标,确定所述经纬度展开图中与所述目标球面坐标点对应的坐标点;
14.根据所述经纬度展开图中与所述目标球面坐标点对应的坐标点、以及所述鱼眼图和所述经纬度展开图之间的坐标映射关系,确定所述目标像素点在所述鱼眼图中的坐标。
15.可以看出,本公开实施例可以根据经纬度展开图中与目标球面坐标点对应的坐标点、以及鱼眼图和经纬度展开图之间的坐标映射关系,准确地确定目标像素点在鱼眼图中的坐标。
16.在一些实施例中,所述方法还包括:
17.确定经过所述球面坐标系的原点和所述目标球面坐标点的连线;
18.根据所述连线与所述球面坐标系的坐标轴之间的角度,确定所述目标球面坐标点的经纬度坐标。
19.可以理解地,根据连线与球面坐标系的坐标轴之间的角度,有利于准确地确定目标球面坐标点的经度和纬度。
20.在一些实施例中,所述根据所述连线与所述球面坐标系的坐标轴之间的角度,确定所述目标球面坐标点的经纬度坐标,包括:
21.根据所述连线与所述球面坐标系的y轴之间的角度,确定所述目标球面坐标点的纬度;根据所述连线在水平面的投影与所述球面坐标系的z轴之间的角度,确定所述目标球面坐标点的经度;其中,所述y轴为竖直方向的坐标轴,所述z轴为水平方向的一个坐标轴。
22.可以理解地,根据连线与球面坐标系的竖直方向的坐标轴的角度,有利于准确地确定目标球面坐标点的纬度,根据连线与球面坐标系的水平方向的坐标轴的角度,有利于准确地确定目标球面坐标点的经度。
23.在一些实施例中,所述将所述球面图像转换为屏幕坐标系下的全景图像,包括:
24.按照预设的模型视图投影矩阵和视口变换矩阵,将所述球面图像转换为所述全景图像;
25.相应地,所述在所述球面图像中,确定与所述全景图像中的目标像素点对应的目标球面坐标点,包括:
26.根据所述模型视图投影矩阵和所述视口变换矩阵,在所述球面图像中确定与所述目标像素点对应的目标球面坐标点。这样,便于根据预设的模型视图投影矩阵和视口变换矩阵,直接确定出与目标像素点对应的目标球面坐标点,具有简单易实现的特点。
27.在一些实施例中,所述根据所述模型视图投影矩阵和所述视口变换矩阵,在所述球面图像中确定与所述目标像素点对应的目标球面坐标点,包括:
28.根据所述视口变换矩阵,在归一化设备坐标系(normalized device coordinate,ndc)中确定与所述目标像素点对应的坐标点;
29.根据所述ndc中与所述目标像素点对应的坐标点、以及所述模型视图投影矩阵,确定与所述目标像素点对应的目标球面坐标点。
30.可以看出,由于视口变换矩阵可以将ndc的图像转换为屏幕坐标系下的全景图像,因此,根据视口变换矩阵可以在ndc中准确地确定与目标像素点对应的坐标点;根据模型视图投影矩阵,可以准确地确定球面图像与ndc中的图像之间的坐标映射关系,因此,根据ndc中与目标像素点对应的坐标点、以及模型视图投影矩阵,能够准确地确定与目标像素点对应的目标球面坐标点。
31.在一些实施例中,所述根据所述视口变换矩阵,在ndc中确定与所述目标像素点对应的坐标点,包括:
32.针对所述屏幕坐标系下所述全景图像中的每个像素点,确定垂直于屏幕方向的虚拟坐标值;
33.根据所述视口变换矩阵、所述目标像素点的在所述屏幕坐标系的坐标、以及所述目标像素点对应的虚拟坐标值,在ndc中确定与所述目标像素点对应的坐标点。
34.本公开实施例中,可以根据视口变换矩阵、以及目标像素点的在屏幕坐标系的坐标,得出ndc中的与目标像素点对应的两个坐标值,然后,结合目标像素点对应的虚拟坐标值,可以较为容易地在ndc中确定与目标像素点对应的坐标点。
35.在一些实施例中,在获取所述鱼眼相机采集的所述鱼眼图之后,所述方法还包括:
36.在所述鱼眼图对应的经纬度展开图为矩形图的情况下,根据以下步骤确定所述经纬度展开图与所述鱼眼图的坐标映射关系:将所述经纬度展开图映射到三维球面上,得到三维球面图像;根据所述鱼眼相机的参数,建立所述三维球面图像与所述鱼眼图的坐标映射关系;根据所述经纬度展开图与所述三维球面图像的坐标映射关系、以及所述三维球面图像与所述鱼眼图的坐标映射关系,确定所述经纬度展开图与所述鱼眼图的坐标映射关系;
37.根据所述经纬度展开图与所述鱼眼图的坐标映射关系,将所述鱼眼图进行展开处理,得到对应的经纬度展开图。
38.可以看出,本公开实施例可以根据预先确定的经纬度展开图与鱼眼图的坐标映射关系,直接对鱼眼图进行准确展开。
39.本公开实施例还提供了一种图像处理装置,所述装置包括:获取模块、坐标转换模块、坐标确定模块和处理模块,其中,
40.获取模块,用于获取鱼眼相机采集的鱼眼图;
41.坐标转换模块,用于根据所述鱼眼图对应的经纬度展开图,将所述鱼眼图转换为球面坐标系下的球面图像;将所述球面图像转换为屏幕坐标系下的全景图像;
42.坐标确定模块,用于在所述球面图像中,确定与所述全景图像中的目标像素点对应的目标球面坐标点;根据所述目标球面坐标点的经纬度坐标、以及所述鱼眼图和所述经纬度展开图之间的坐标映射关系,确定所述目标像素点在所述鱼眼图中的坐标;所述目标像素点为所述全景图像中的任意一个像素点;
43.处理模块,用于根据所述目标像素点在所述鱼眼图中的坐标,对所述全景图像进行处理。
44.本公开实施例还提供了一种电子设备,包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
45.所述处理器用于运行所述计算机程序以执行上述任意一种图像处理方法。
46.本公开实施例还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任意一种图像处理方法。
47.本公开实施例提出的图像处理方法、装置、电子设备和计算机存储介质中,可以在生成全景图像的同时,确定鱼眼图和经纬度展开图之间的坐标映射关系、以及球面图像和全景图像之间的坐标映射关系,从而,根据鱼眼图和经纬度展开图之间的坐标映射关系、以及球面图像和全景图像之间的坐标映射关系,可以较为准确地确定全景图像中任意一个像素点在鱼眼图中的坐标,有利于提升对全景图像进行处理的准确性。
48.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。
附图说明
49.此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
50.图1为本公开实施例的图像处理方法的流程图;
51.图2为本公开实施例中双目鱼眼相机采集的鱼眼图的成像范围示意图;
52.图3为本公开实施例中将鱼眼图展开为矩形图像的示意图;
53.图4为本公开实施例中球面坐标系下的完整球面的示意图;
54.图5为本公开实施例中对鱼眼图进行展开处理的流程图;
55.图6为本公开实施例中确定三维球面图像与鱼眼图的坐标映射关系的原理示意图;
56.图7为本公开实施例中确定与目标像素点对应的目标球面坐标点的流程示意图;
57.图8为本公开实施例提供的在ndc中确定与目标像素点对应的坐标点的流程示意图;
58.图9为本公开实施例中确定目标像素点在鱼眼图中的坐标的流程示意图;
59.图10为本公开实施例中确定目标球面坐标点的经纬度坐标的流程示意图;
60.图11为本公开实施例中确定目标球面坐标点的经纬度坐标的几何关系示意图;
61.图12为本公开实施例的图像处理装置的结构示意图;
62.图13为本公开实施例的电子设备的结构示意图。
具体实施方式
63.以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本公开,并不用于限定本公开。另外,以下所提供的实施例是用于实施本公开的部分实施例,而非提供实施本公开的全部实施例,在不冲突的情况下,本公开实施例记载的技术方案可以任意组合的方式实施。
64.需要说明的是,在本公开实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其他要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的单元,例如的单元可以是部分电路、部分处理器、部分程序或软件等等)。
65.例如,本公开实施例提供的图像处理方法包含了一系列的步骤,但是本公开实施例提供的图像处理方法不限于所记载的步骤,同样地,本公开实施例提供的图像处理装置包括了一系列模块,但是本公开实施例提供的装置不限于包括所明确记载的模块,还可以包括为获取相关信息、或基于信息进行处理时所需要设置的模块。
66.本公开实施例可以应用于终端和/或服务器组成的电子设备中,并可以与众多其它通用或专用计算系统环境或配置一起操作。这里,终端可以是瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统,等等,服务器可以是服务器计算机系统小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
67.终端、服务器等电子设备可以包括用于执行指令的程序模块。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
68.图1为本公开实施例的图像处理方法的流程图,如图1所示,该流程可以包括:
69.步骤101:获取鱼眼相机采集的鱼眼图。
70.本公开实施例中,鱼眼图像可以由鱼眼相机拍摄得到,鱼眼相机的镜头焦距往往较短,一般为16mm或更短,并且视场角(field of view,fov)接近或等于180
°
。由于焦距越短视场角越大,所以为使镜头达到更大的拍摄视场角,鱼眼相机的前镜片直径很短且呈抛物状向镜头前部凸出,与鱼的眼睛颇为相似,因此称之为鱼眼相机。
71.示例性地,鱼眼相机可以是单目鱼眼相机,也可以是双目鱼眼相机;以双目鱼眼相机为例,在图2中,左半部分的圆形201和右半部分的圆形202分别表示双目鱼眼相机采集的两张鱼眼图的成像范围。
72.步骤102:根据鱼眼图对应的经纬度展开图,将鱼眼图转换为球面坐标系下的球面图像。
73.本公开实施例中,经纬度展开图可以是矩形图或其它便于确定经纬度坐标的二维平面图像;示例性地,可以根据鱼眼相机的内参,预先确定鱼眼图与经纬度展开图的坐标映射关系,然后,可以根据鱼眼图与经纬度展开图的坐标映射关系,将鱼眼图进行展开处理,得到鱼眼图对应的经纬度展开图。
74.例如,参照图3,对于双目鱼眼相机采集的两张鱼眼图,在经纬度展开图为矩形图的情况下,可以根据鱼眼图与经纬度展开图的坐标映射关系,将经纬度展开图每个坐标的像素值替换为鱼眼图上对应坐标的像素值,从而使经纬度展开图的整个矩形区域完成像素值填充。图3中,针对左半部分的圆形201中的鱼眼图,通过鱼眼图展开后,可以得到第一矩形区域301;针对右半部分的圆形201中的鱼眼图,通过鱼眼图展开后,可以得到第二矩形区域302。
75.本公开实施例中,在得到鱼眼图对应的经纬度展开图后,可以根据鱼眼图对应的经纬度展开图中各点的经纬度坐标,将鱼眼图转换为球面坐标系下的球面图像。
76.示例性地,将鱼眼图转换为球面坐标系下的球面图像的实现方式可以是:对于单目鱼眼相机采集的鱼眼图,可以将鱼眼图对应的经纬度展开图和半球面按照相同的经纬线分割方式进行经纬线分割,将经纬度展开图与半球面按照相同经纬度建立区域位置映射关系,按照该区域位置映射关系,将经纬度展开图中每个区域的图像贴在半球面的相应区域。本公开实施例中,在采用单目鱼眼相机采集鱼眼图的情况下,球面坐标系下的球面图像为半球面图像。
77.由于半球面为曲面,而经纬度展开图为二维平面,因而,为了能够实现半球面的贴图,需要通过经纬线分割得到足够小的区域,从而可以将半球面的每个区域近似认为是一个小的平面,便于实现后续三维球面的贴图。
78.在一个示例中,可以按照宽160份和高80份,对经纬度展开图和半球面进行经纬线分割,得到多个四边形区域,每个四边形区域有四个经纬线交点之间的连线形成。在通过经纬线分割的经纬度展开图和三维球面中,可以建立相同经纬度位置的四边形区域的映射关系,从而按照该四边形区域的映射关系,可以将经纬度展开图中每个四边形区域的图像贴在半球面的相应区域。
79.示例性地,在对半球面的每个四边形区域进行贴图的情况下,可以针对经纬度展开图和半球面的每个四边形区域,用直线分割为两个三角形,从而按照经纬度展开图和半
球面中三角形区域的映射关系,实现半球面中每个三角形区域的贴图。
80.示例性地,为了将经纬度展开图中每个区域的图像贴在半球面的相应区域,可以针对经纬度展开图与半球面的每个区域,确定纹理坐标,从而根据经纬度展开图与半球面的每个区域的各点的纹理坐标的映射关系,进行半球面的每个区域的贴图。
81.需要说明的是,上述记载的内容仅仅是示例性地说明了对半球面的每个区域的贴图方式,本公开实施例中,还可以采用其它方式实现半球面的每个区域的贴图。
82.对于双目鱼眼相机采集的两张鱼眼图,可以针对每张鱼眼图,按照上述半球面的贴图方式,实现两个半球面的贴图;在实现两个半球面的贴图后,可以将两个半球面进行拼接,得到一个完整球面图像;本公开实施例中,在采用双目鱼眼相机采集两张鱼眼图的情况下,球面坐标系下的球面图像为完整球面图像。
83.示例性地,图4为本公开实施例中球面坐标系下的完整球面,图2中左半部分的圆形201与图4中的后半球对应,图2中右半部分的圆形201与图4中的前半球对应。
84.步骤103:将球面图像转换为屏幕坐标系下的全景图像。
85.示例性地,可以按照预设的模型视图投影矩阵和视口变换矩阵,将球面图像转换为屏幕坐标系下的全景图像。
86.本公开实施例中,球面坐标系可以作为局部坐标系,局部坐标系是以物体的中心为坐标原点的坐标系,物体的旋转、平移等操作都是围绕局部坐标系进行的,这时,当物体模型进行旋转或平移等操作时,局部坐标系也执行相应的旋转或平移操作;示例性地,局部坐标系是以鱼眼相机的中心为坐标原点的坐标系,鱼眼相机的朝向为观察者在屏幕上观察全景图像的方向,鱼眼相机的默认朝向可以根据观察者的需求进行设置,例如,鱼眼相机的默认朝向为垂直于屏幕并指向图4中的前半球的方向,或者为垂直于屏幕并指向图4中的后半球的方向。
87.这里,模型视图投影矩阵为模型矩阵、投影矩阵和视图矩阵相乘得到的矩阵;模型矩阵用于将局部坐标系的球面图像转换至世界坐标系,例如,响应于局部坐标系是以鱼眼相机的中心为坐标原点的坐标系,模型矩阵为单位矩阵。视图矩阵用于将世界坐标系的图像转换至相机坐标系,例如,视图矩阵可以是大小为4*4的矩阵,视图矩阵用于表征相机坐标点、相机朝向等参数。投影矩阵是将相机坐标系的图像转换至裁剪坐标系,裁剪坐标系指的是相机坐标系经过投影矩阵转换后得到的空间坐标系,例如,投影矩阵可以是大小为4*4的矩阵,投影矩阵可以是用于表征透视投影过程的矩阵,或者是用于表征正交投影过程的矩阵。
88.本公开实施例中,裁剪坐标系的图像为ndc的图像;视口变换矩阵用于将ndc的图像转换为屏幕坐标系下的全景图像。
89.在实际应用中,模型矩阵、投影矩阵、视图矩阵和视口变换矩阵可以基于开放图形库(open graphics library,opengl)标准设置,opengl是用于渲染2d、3d矢量图形的跨语言、跨平台的应用程序编程接口(application programming interface,api);该个接口由近350个不同的函数调用组成,用来从简单的图形比特绘制复杂的三维景象;在一些实施例中,可以采用opengl标准实现球面图像到全景图像的转换,即在获取球面图像、模型矩阵、投影矩阵、视图矩阵和视口变换矩阵的基础上,利用opengl标准可以实现全景图像的渲染。
90.在一些实施例中,参照步骤101至步骤103,针对鱼眼相机采集的每一帧鱼眼图,均
可以生成对应的一帧全景图像,因此,针对鱼眼相机连续采集的至少两帧图像,可以生成全景视频,全景视频中的每一帧图像为全景图像。在一些实施例中,在生成全景视频后,可以播放全景视频。
91.步骤104:在球面图像中,确定与全景图像中的目标像素点对应的目标球面坐标点;目标像素点为全景图像中的任意一个像素点。
92.可以理解地,通过执行步骤103,可以确定球面图像与屏幕坐标系下的全景图像的转换关系,即,可以确定出球面图像与屏幕坐标系下的全景图像的坐标映射关系,根据球面图像与屏幕坐标系下的全景图像的坐标映射关系,可以确定出与目标像素点对应的目标球面坐标点。
93.步骤105:根据目标球面坐标点的经纬度坐标、以及鱼眼图和经纬度展开图之间的坐标映射关系,确定目标像素点在鱼眼图中的坐标。
94.步骤106:根据目标像素点在鱼眼图中的坐标,对全景图像进行处理。
95.下面通过几个示例说明对全景图像进行处理的实现方式。
96.示例1:在显示全景图像的情况下,在全景图像中呈现目标像素点在鱼眼图中的坐标,目标像素点可以是观察者通过点击全景图像选择的像素点。
97.示例2:在播放全景视频的情况下,在全景视频的任意一帧全景图像中呈现目标像素点在鱼眼图中的坐标。
98.示例3:采用计算机视觉处理技术处理全景图像的情况下,将目标像素点在鱼眼图中的坐标作为是计算机视觉处理技术使用的标签信息;这里,采用计算机视觉处理技术处理全景图像的实现方式可以是:采用计算机视觉处理技术对全景图像进行目标识别或目标测距。
99.上述记载的内容仅仅是处理全景图像的几个示例,本公开实施例中对全景图像进行处理的实现方式并不局限于此。
100.在实际应用中,步骤101至步骤105可以利用电子设备中的处理器实现,上述处理器可以为特定用途集成电路(application specific integrated circuit,asic)、数字信号处理器(digital signal processor,dsp)、数字信号处理装置(digital signal processing device,dspd)、可编程逻辑装置(programmable logic device,pld)、现场可编程门阵列(field-programmable gate array,fpga)、中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器中的至少一种。
101.可以看出,本公开实施例可以在生成全景图像的同时,确定鱼眼图和经纬度展开图之间的坐标映射关系、以及球面图像和全景图像之间的坐标映射关系,从而,根据鱼眼图和经纬度展开图之间的坐标映射关系、以及球面图像和全景图像之间的坐标映射关系,可以较为准确地确定全景图像中任意一个像素点在鱼眼图中的坐标,有利于提升对全景图像进行处理的准确性。
102.在本公开的一些实施例中,参照图5,对鱼眼图进行展开处理的流程可以包括:
103.步骤501:在鱼眼图对应的经纬度展开图为矩形图的情况下,根据以下步骤确定经纬度展开图与鱼眼图的坐标映射关系:将经纬度展开图映射到三维球面上,得到三维球面图像;根据鱼眼相机的参数,建立三维球面图像与鱼眼图的坐标映射关系;根据经纬度展开图与三维球面图像的坐标映射关系、以及三维球面图像与鱼眼图的坐标映射关系,确定经
纬度展开图与鱼眼图的坐标映射关系。
104.下面结合图6,示例性地说明确定三维球面图像与鱼眼图的坐标映射关系的原理。
105.将经纬度展开图的映射到三维球面上,得到三维球面图像;经纬度展开图中任意一点映射三维球面图像上的坐标点记为n。
106.使用鱼眼相机的初始外参,将三维球面图像上的坐标点pw转换至相机坐标系,得到相机坐标系的坐标点pc。
107.参照图6,在得到相机坐标系的坐标点pc后,将三维球面图像上的坐标点n投影到归一化球面,得到归一化球面上的坐标点ps;将三维球面图像上的坐标点n投影到归一化平面,得到归一化平面上的坐标点pn。
108.对通过向归一化平面投影得到的投影图像进行畸变校正和平滑处理,得到鱼眼图。
109.本公开实施例中,相机坐标系的坐标点pc的坐标可以记为(x,y,z),与坐标点pc对应的鱼眼图的坐标可以记为(u,v),与坐标点pc对应的鱼眼图的坐标(u,v)可以根据公式(1)和公式(2)计算得出。
[0110][0111][0112]
其中,f
x
表示鱼眼相机的宽度方向焦距,fy表示鱼眼相机的高度方向焦距,c
x
表示鱼眼相机的光心位置的横坐标值,cy为鱼眼相机的光心位置的纵坐标值,ξ为鱼眼相机的畸变参数,ξ为图6中的xi;参数f
x
、fy、c
x
、cy和ξ可以通过对鱼眼相机的标定获得。
[0113]
可以看出,参照以上公式(1)和公式(2),可以确定相机坐标系的图像与鱼眼图的坐标映射关系;然后,结合三维球面图像到相机坐标系的图像的坐标映射关系,可以确定三维球面图像与鱼眼图的坐标映射关系。
[0114]
步骤502:根据经纬度展开图与鱼眼图的坐标映射关系,将鱼眼图进行展开处理,得到对应的经纬度展开图。
[0115]
可以看出,本公开实施例可以根据预先确定的经纬度展开图与鱼眼图的坐标映射关系,直接对鱼眼图进行准确展开。
[0116]
在本公开的一些实施例中,在球面图像中,确定与全景图像中的目标像素点对应的目标球面坐标点的实现方式为:根据模型视图投影矩阵和视口变换矩阵,在球面图像中确定与所述目标像素点对应的目标球面坐标点;这样,便于根据预设的模型视图投影矩阵和视口变换矩阵,直接确定出与目标像素点对应的目标球面坐标点,具有简单易实现的特点。
[0117]
在本公开的一些实施例中,参照图7,根据模型视图投影矩阵和视口变换矩阵,在球面图像中确定与目标像素点对应的目标球面坐标点的流程,可以包括:
[0118]
步骤701:根据视口变换矩阵,在ndc中确定与目标像素点对应的坐标点。
[0119]
本公开实施例中,由于视口变换矩阵可以将ndc的图像转换为屏幕坐标系下的全景图像,因此,根据视口变换矩阵,可以确定ndc的图像与屏幕坐标系的全景图像的坐标映
射关系,从而,可以在ndc中确定与目标像素点对应的坐标点。
[0120]
步骤702:根据ndc中与目标像素点对应的坐标点、以及模型视图投影矩阵,确定与目标像素点对应的目标球面坐标点。
[0121]
可以看出,由于视口变换矩阵可以将ndc的图像转换为屏幕坐标系下的全景图像,因此,根据视口变换矩阵可以在ndc中准确地确定与目标像素点对应的坐标点;根据模型视图投影矩阵,可以准确地确定球面图像与ndc中的图像之间的坐标映射关系,因此,根据ndc中与目标像素点对应的坐标点、以及模型视图投影矩阵,能够准确地确定与目标像素点对应的目标球面坐标点。
[0122]
在本公开的一些实施例中,参照图8,根据视口变换矩阵,在ndc中确定与目标像素点对应的坐标点的流程,可以包括:
[0123]
步骤801:针对屏幕坐标系下全景图像中的每个像素点,确定垂直于屏幕方向的虚拟坐标值。
[0124]
本公开实施例中,由于屏幕坐标系中像素点的坐标为二维坐标,而ndc中点的坐标为三维坐标,因此,为了在ndc中确定与屏幕坐标系的像素点对应的坐标点,需要针对屏幕坐标系下全景图像中的每个像素点,确定垂直于屏幕方向的虚拟坐标值。
[0125]
示例性地,针对不同像素点设置的虚拟坐标值可以相同,也可以不同;例如,针对屏幕坐标系下的各个像素点设置的虚拟坐标值均为1.0。
[0126]
步骤802:根据视口变换矩阵、目标像素点的在屏幕坐标系的坐标、以及目标像素点对应的虚拟坐标值,在ndc中确定与目标像素点对应的坐标点。
[0127]
示例性地,可以根据目标像素点的在屏幕坐标系的坐标、以及目标像素点对应的虚拟坐标值,首先确定目标像素点对应的初始三维坐标;然后,可以根据视口变换矩阵、以及目标像素点对应的初始三维坐标,在ndc中确定与目标像素点对应的坐标点。
[0128]
示例性地,屏幕坐标系的原点为左上顶点,屏幕坐标系中的目标像素点的坐标可以记为p(x0,y0),目标像素点对应的初始三维坐标可以记为p

(x0,viewportheigh-y0,z0),其中,viewportheigh表示屏幕坐标系的屏幕高度,z0表示针对目标像素点设置的虚拟坐标值。
[0129]
在确定目标像素点对应的初始三维坐标p

后,可以将视口变换矩阵vp的逆矩阵与初始三维坐标p

相乘,得到ndc中与目标像素点对应的坐标点的坐标。
[0130]
进一步地,与目标像素点对应的目标球面坐标点的坐标p
ball
可以根据公式(3)计算得出。
[0131]
p
ball
=inverse(mvp)*inverse(vp)*p
′ꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0132]
其中,inverse()表示逆矩阵,mvp表示模型视图投影矩阵。
[0133]
本公开实施例中,可以根据视口变换矩阵、以及目标像素点的在屏幕坐标系的坐标,得出ndc中的与目标像素点对应的两个坐标值,然后,结合目标像素点对应的虚拟坐标值,可以较为容易地在ndc中确定与目标像素点对应的坐标点。
[0134]
在本公开的一些实施例中,参照图9,根据目标球面坐标点的经纬度坐标、以及鱼眼图和经纬度展开图之间的坐标映射关系,确定目标像素点在鱼眼图中的坐标的流程,可以包括:
[0135]
步骤901:根据目标球面坐标点的经纬度坐标,确定经纬度展开图中与目标球面坐
标点对应的坐标点。
[0136]
本公开实施例中,可以根据球面图像与经纬度展开图中相同经纬度坐标的映射关系,确定经纬度展开图中与目标球面坐标点对应的坐标点。
[0137]
步骤902:根据经纬度展开图中与目标球面坐标点对应的坐标点、以及鱼眼图和经纬度展开图之间的坐标映射关系,确定目标像素点在鱼眼图中的坐标。
[0138]
示例性地,目标球面坐标点的坐标为p
ball
,经纬度展开图中与目标球面坐标点对应的坐标点的坐标为p
unfold
,则目标像素点在鱼眼图中的坐标p
fish
可以根据公式(4)计算得出。
[0139]
p
fish
=fun(p
unfold
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0140]
其中,fun()表示鱼眼图和经纬度展开图之间的坐标映射函数。
[0141]
可以看出,本公开实施例可以根据经纬度展开图中与目标球面坐标点对应的坐标点、以及鱼眼图和经纬度展开图之间的坐标映射关系,准确地确定目标像素点在鱼眼图中的坐标。
[0142]
在本公开的一些实施例中,参照图10,确定目标球面坐标点的经纬度坐标的流程可以包括:
[0143]
步骤1001:确定经过球面坐标系的原点和目标球面坐标点的连线。
[0144]
本公开实施例中,经过球面坐标系的原点和目标球面坐标点的连线可以是直线或射线。
[0145]
步骤1002:根据连线与球面坐标系的坐标轴之间的角度,确定目标球面坐标点的经纬度坐标。
[0146]
这里,球面坐标系的坐标轴可以包括x轴、y轴和z轴,参照图11,球面坐标系的原点为o,y轴为竖直方向的坐标轴,x轴和z轴为水平方向的两个相互垂直的坐标轴。
[0147]
示例性地,本步骤的实现方式可以是:根据连线与球面坐标系的y轴之间的角度,确定目标球面坐标点的纬度;根据连线在水平面的投影与球面坐标系的z轴之间的角度,确定目标球面坐标点的经度。
[0148]
示例性地,参照图11,从球面坐标系的原点o,发出一条经过目标球面坐标点的射线,该射线与球面相交于点a。
[0149]
根据射线oa与y轴的夹角β,可以计算得出点a的纬度,将点a的纬度确定为目标球面坐标点的纬度;根据射线oa与在水平投影与z轴的夹角α,可以计算得出点a的经度,将点a的经度确定为目标球面坐标点的经度。
[0150]
可以理解地,根据连线与球面坐标系的坐标轴之间的角度,有利于准确地确定目标球面坐标点的经度和纬度。
[0151]
本公开实施例提供的图像处理方法,可以应用于全景视频播放、视频互动等场景中,下面对本公开实施例的使用场景进行示例性说明。
[0152]
在使用鱼眼相机连续拍摄鱼眼图后,参照步骤101至步骤103,针对鱼眼相机连续采集的至少两帧图像,可以生成全景视频,可以使用手机等播放设备实现全景视频的播放。假设,鱼眼相机的拍摄目标为机柜,机柜内存在一个设备b,在全景视频的某一帧图像点击设备b的图像区域后,采用本公开实施例的技术方案,可以确定设备b在鱼眼图中的坐标;在将全景视频传输至其他用户的电子设备的情况下,可以将设备b在鱼眼图中的坐标作为标
签信息一同传输;其他用户的电子设备在对全景视频进行视频处理时,可以参照该标签信息对视频处理结果进行优化,例如,在利用全景视频进行3d建模的场景中,需要对全景视频的每一帧图像进行目标识别,在通过目标识别确定设备b的位置信息后,可以利用标签信息对设备b的位置信息进行优化。
[0153]
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
[0154]
在前述实施例提出的图像处理方法的基础上,本公开实施例提出了一种图像处理装置。
[0155]
图12为本公开实施例的图像处理装置的组成结构示意图,如图12所示,该装置可以包括获取模块121、坐标转换模块122、坐标确定模块123和处理模块124,其中,
[0156]
获取模块121,用于获取鱼眼相机采集的鱼眼图;
[0157]
坐标转换模块122,用于根据所述鱼眼图对应的经纬度展开图,将所述鱼眼图转换为球面坐标系下的球面图像;将所述球面图像转换为屏幕坐标系下的全景图像;
[0158]
坐标确定模块123,用于在所述球面图像中,确定与所述全景图像中的目标像素点对应的目标球面坐标点;根据所述目标球面坐标点的经纬度坐标、以及所述鱼眼图和所述经纬度展开图之间的坐标映射关系,确定所述目标像素点在所述鱼眼图中的坐标;所述目标像素点为所述全景图像中的任意一个像素点;
[0159]
处理模块124,用于根据所述目标像素点在所述鱼眼图中的坐标,对所述全景图像进行处理。
[0160]
在一些实施例中,所述坐标确定模块123,用于根据所述目标球面坐标点的经纬度坐标、以及所述鱼眼图和所述经纬度展开图之间的坐标映射关系,确定所述目标像素点在所述鱼眼图中的坐标,包括:
[0161]
根据所述目标球面坐标点的经纬度坐标,确定所述经纬度展开图中与所述目标球面坐标点对应的坐标点;
[0162]
根据所述经纬度展开图中与所述目标球面坐标点对应的坐标点、以及所述鱼眼图和所述经纬度展开图之间的坐标映射关系,确定所述目标像素点在所述鱼眼图中的坐标。
[0163]
在一些实施例中,所述坐标确定模块123,还用于确定经过所述球面坐标系的原点和所述目标球面坐标点的连线;根据所述连线与所述球面坐标系的坐标轴之间的角度,确定所述目标球面坐标点的经纬度坐标。
[0164]
在一些实施例中,所述坐标确定模块123,用于根据所述连线与所述球面坐标系的坐标轴之间的角度,确定所述目标球面坐标点的经纬度坐标,包括:
[0165]
根据所述连线与所述球面坐标系的y轴之间的角度,确定所述目标球面坐标点的纬度;根据所述连线在水平面的投影与所述球面坐标系的z轴之间的角度,确定所述目标球面坐标点的经度;其中,所述y轴为竖直方向的坐标轴,所述z轴为水平方向的一个坐标轴。
[0166]
在一些实施例中,所述坐标转换模块122,用于将所述球面图像转换为屏幕坐标系下的全景图像,包括:
[0167]
按照预设的模型视图投影矩阵和视口变换矩阵,将所述球面图像转换为所述全景图像;
[0168]
相应地,所述在所述球面图像中,确定与所述全景图像中的目标像素点对应的目标球面坐标点,包括:
[0169]
根据所述模型视图投影矩阵和所述视口变换矩阵,在所述球面图像中确定与所述目标像素点对应的目标球面坐标点。
[0170]
在一些实施例中,所述坐标转换模块122,用于根据所述模型视图投影矩阵和所述视口变换矩阵,在所述球面图像中确定与所述目标像素点对应的目标球面坐标点,包括:
[0171]
根据所述视口变换矩阵,ndc中确定与所述目标像素点对应的坐标点;
[0172]
根据所述ndc中与所述目标像素点对应的坐标点、以及所述模型视图投影矩阵,确定与所述目标像素点对应的目标球面坐标点。
[0173]
在一些实施例中,所述坐标转换模块122,用于根据所述视口变换矩阵,在ndc中确定与所述目标像素点对应的坐标点,包括:
[0174]
针对所述屏幕坐标系下所述全景图像中的每个像素点,确定垂直于屏幕方向的虚拟坐标值;
[0175]
根据所述视口变换矩阵、所述目标像素点的在所述屏幕坐标系的坐标、以及所述目标像素点对应的虚拟坐标值,在ndc中确定与所述目标像素点对应的坐标点。
[0176]
在一些实施例中,所述获取模块121,还用于在获取所述鱼眼相机采集的所述鱼眼图之后,在所述鱼眼图对应的经纬度展开图为矩形图的情况下,根据以下步骤确定所述经纬度展开图与所述鱼眼图的坐标映射关系:将所述经纬度展开图映射到三维球面上,得到三维球面图像;根据所述鱼眼相机的参数,建立所述三维球面图像与所述鱼眼图的坐标映射关系;根据所述经纬度展开图与所述三维球面图像的坐标映射关系、以及所述三维球面图像与所述鱼眼图的坐标映射关系,确定所述经纬度展开图与所述鱼眼图的坐标映射关系;
[0177]
所述获取模块121,还用于根据所述经纬度展开图与所述鱼眼图的坐标映射关系,将所述鱼眼图进行展开处理,得到对应的经纬度展开图。
[0178]
实际应用中,获取模块121、坐标转换模块122、坐标确定模块123和处理模块124均可以利用电子设备中的处理器实现,上述处理器可以为asic、dsp、dspd、pld、fpga、cpu、控制器、微控制器、微处理器中的至少一种。
[0179]
另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0180]
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0181]
具体来讲,本实施例中的一种图像处理方法对应的计算机程序指令可以被存储在
光盘,硬盘,u盘等存储介质上,当存储介质中的与一种图像处理方法对应的计算机程序指令被一电子设备读取或被执行时,实现前述实施例的任意一种图像处理方法。
[0182]
基于前述实施例相同的技术构思,参见图13,其示出了本公开实施例提供的一种电子设备13,可以包括:存储器131和处理器132;其中,
[0183]
所述存储器131,用于存储计算机程序和数据;
[0184]
所述处理器132,用于执行所述存储器中存储的计算机程序,以实现前述实施例的任意一种图像处理方法。
[0185]
在实际应用中,上述存储器131可以是易失性存储器(volatile memory),例如ram;或者非易失性存储器(non-volatile memory),例如rom,快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd);或者上述种类的存储器的组合,并向处理器132提供指令和数据。
[0186]
上述处理器132可以为asic、dsp、dspd、pld、fpga、cpu、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本公开实施例不作具体限定。
[0187]
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
[0188]
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述
[0189]
本公开所提供的各方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
[0190]
本公开所提供的各产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
[0191]
本公开所提供的各方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
[0192]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0193]
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献