CN109816587B - 一种鱼眼图像处理方法、装置及电子设备 - Google Patents
一种鱼眼图像处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN109816587B CN109816587B CN201711156272.0A CN201711156272A CN109816587B CN 109816587 B CN109816587 B CN 109816587B CN 201711156272 A CN201711156272 A CN 201711156272A CN 109816587 B CN109816587 B CN 109816587B
- Authority
- CN
- China
- Prior art keywords
- image
- coordinate value
- coordinate
- value
- dimensional cylindrical
- 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
Links
- 238000003672 processing method Methods 0.000 title abstract description 12
- 238000013507 mapping Methods 0.000 claims abstract description 237
- 238000012545 processing Methods 0.000 claims abstract description 16
- 238000000034 method Methods 0.000 claims description 67
- 230000007704 transition Effects 0.000 claims description 28
- 238000004364 calculation method Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 6
- 230000000007 visual effect Effects 0.000 abstract description 16
- 230000000694 effects Effects 0.000 abstract description 9
- 230000008569 process Effects 0.000 description 36
- 238000010586 diagram Methods 0.000 description 10
- 241000699666 Mus <mouse, genus> Species 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明实施例提供了一种鱼眼图像处理方法、装置及电子设备,方法包括:将鱼眼图像映射到三维圆柱面上,得到三维圆柱图像,在接收到圆柱面展开指令后,将三维圆柱图像映射得到展开面图像;本方案中,如果用户想要看到背面视角的图像区域,不需要手动转动该三维圆柱,只需要发送圆柱面展开指令,便可以看到展开面图像,展开面图像中包含了大视角的图像区域,因此,提高了图像的展示效果。
Description
技术领域
本发明涉及图像处理技术领域,特别是涉及一种鱼眼图像处理方法、装置及电子设备。
背景技术
目前,鱼眼图像由于其超大视角得到了广泛应用。目前,对鱼眼图像进行处理的方案一般包括:预先设定鱼眼图像坐标系与三维半球坐标系的映射关系,根据该映射关系,将采集到的鱼眼图像映射到三维半球面上,得到具有立体效果的三维图像,这样的三维半球图像存在图像形变,视觉效果较差。
上述方案中,得到三维图像后,仅能向用户展示该三维半球正面视角的三维图像区域,如果用户想要看到该三维半球背面视角的图像区域,只能手动转动该三维半球,展示效果较差。
发明内容
本发明实施例的目的在于提供一种鱼眼图像处理方法、装置及电子设备,以提高视觉效果和展示效果。
为达到上述目的,本发明实施例提供一种鱼眼图像处理方法,包括:
获取待处理鱼眼图像;
根据预先设定的鱼眼图像坐标点与三维圆柱坐标点的映射关系,将所述待处理鱼眼图像映射到三维圆柱面上,得到三维圆柱图像;
在接收到圆柱面展开指令后,根据预先设定的三维圆柱坐标点与展开面图像坐标点的映射关系,将所述三维圆柱图像进行映射,得到展开面图像。
可选的,所述在接收到圆柱面展开指令后,根据预先设定的三维圆柱坐标点与展开面图像坐标点的映射关系,将所述三维圆柱图像映射到展开面上,得到展开面图像,可以包括:
在接收到圆柱面展开指令后,确定展开时长、以及目标展开面图像与所述三维圆柱图像的第一映射关系;
根据所述展开时长、以及所述第一映射关系,确定到达所述展开时长之前的每一时刻展开面图像与所述三维圆柱图像的第二映射关系;
针对到达所述展开时长之前的每一时刻,根据该时刻对应的第二映射关系,将所述三维圆柱图像进行映射,得到该时刻展开面图像;
到达所述展开时长时,根据所述第一映射关系,将所述三维圆柱图像进行映射,得到所述目标展开面图像。
可选的,所述在接收到圆柱面展开指令后,根据预先设定的三维圆柱坐标点与展开面图像坐标点的映射关系,将所述三维圆柱图像进行映射,得到展开面图像,可以包括:
在接收到圆柱面展开指令后,启动计时器,并确定展开时长;
确定当前时刻下所述计时器中存储的时间值;
判断所存储的时间值是否小于所述展开时长;
如果小于,根据所存储的时间值对应的第三映射关系,将所述三维圆柱图像进行映射,得到所存储的时间值对应的展开曲面图像;其中,大于等于0且小于所述展开时长的每个时间值分别对应一份第三映射关系,一份第三映射关系为:三维圆柱坐标点与一个时间值对应的展开曲面图像坐标点的映射关系;
如果大于等于,根据预先设定的三维圆柱坐标点与展开平面图像坐标点的映射关系,将所述三维圆柱图像进行映射,得到展开平面图像。
可选的,所述三维圆柱坐标点的坐标值包括:第一坐标值、第二坐标值和第三坐标值,所述一个时间值对应的展开曲面图像坐标点的坐标值包括:第四坐标值、第五坐标值和第六坐标值;
所述根根据所存储的时间值对应的第三映射关系,将所述三维圆柱图像进行映射,可以包括:
针对所存储的每一时间值,计算该时间值与所述展开时长的比值;
根据所述第一坐标值、所述第一坐标值与预设基准点之间的弧长以及所述比值,计算所映射到的第四坐标值;其中,所述弧长根据视点角度及所述三维圆柱的半径确定;
将所述第二坐标值确定为所映射到的第五坐标值;
根据所述第三坐标值、所述三维圆柱的半径以及所述比值,计算所映射到的第六坐标值。
可选的,所述根据所述第一坐标值、所述第一坐标值与预设基准点之间的弧长以及所述比值,计算所映射到的第四坐标值,可以包括:
所映射到的第四坐标值=第一坐标值+所述比值*[sign(第一坐标值)*所述第一坐标值与预设基准点之间的弧长-第一坐标值];
所述第一坐标值与预设基准点之间的弧长=所述三维圆柱的半径*(π-视点角度);
所述视点角度=tan-1(第一坐标值的绝对值/第三坐标值);
所述根据所述第三坐标值、所述三维圆柱的半径以及所述比值,计算所映射到的第六坐标值,可以包括:
所映射到的第六坐标值=第三坐标值+所述比值*(-所述三维圆柱的半径-第三坐标值)。
可选的,所述三维圆柱坐标点的坐标值包括:第一坐标值、第二坐标值和第三坐标值,所述展开平面图像坐标点的坐标值包括:第七坐标值、第八坐标值和第九坐标值;
所述根据预先设定的三维圆柱坐标点与展开平面图像坐标点的映射关系,将所述三维圆柱图像进行映射,得到展开平面图像,可以包括:
根据所述第一坐标值、以及所述第一坐标值与预设基准点之间的弧长,计算所映射到的第七坐标值;其中,所述弧长根据视点角度及所述三维圆柱的半径确定;
将所述第二坐标值确定为所映射到的第八坐标值;
将所述三维圆柱的半径的相反数确定为映射到的第九坐标值。
可选的,所述根据所述第一坐标值、以及所述第一坐标值与预设基准点之间的弧长,计算所映射到的第七坐标值,可以包括:
第七坐标值=sign(第一坐标值)*所述第一坐标值与预设基准点之间的弧长;
所述第一坐标值与预设基准点之间的弧长=所述三维圆柱的半径*(π-视点角度);
所述视点角度=tan-1(第一坐标值的绝对值/第三坐标值)。
可选的,在所述得到三维圆柱图像之后,还可以包括:
接收用户发送的转动圆柱指令;确定所述转动圆柱指令对应的转动角度;以所述三维圆柱图像的中心线为轴,将所述三维圆柱图像转动所述转动角度;
或者,
接收用户发送的视点移动指令;确定所述视点移动指令对应的视点角度与景深;根据所确定的视点角度与景深,对所述三维圆柱图像的进行调整。
可选的,在所述得到三维圆柱图像之后,还可以包括:
接收用户发送的缩放指令;
确定所述缩放指令对应的目标景深;
将所述三维圆柱图像的景深调整至所述目标景深。
可选的,在接收用户发送的缩放指令后,还可以包括:
启动计时器,并确定缩放时长;
所述将所述三维圆柱图像的景深调整至所述目标景深,可以包括:
确定当前时刻下所述计时器中存储的时间值;
判断所存储的时间值是否小于所述缩放时长;
如果小于,计算所存储的时间值对应的过渡景深,其中,大于等于0且小于所述缩放时长的每一时间值对应一过渡景深,过渡景深位于所述三维圆柱图像的当前景深与所述目标景深之间;将所述三维圆柱图像的景深调整至所述过渡景深;
如果大于等于,将所述三维圆柱图像的景深调整至所述目标景深。
可选的,所述计算所存储的时间值对应的过渡景深,可以包括:
过渡景深=所存储的时间值/所述缩放时长*(目标景深-三维圆柱图像的当前景深)+三维圆柱图像的当前景深。
可选的,在所述根据预先设定的三维圆柱坐标点与展开面图像坐标点的映射关系,将所述三维圆柱图像映射到展开面上,得到展开面图像之后,还包括:
根据所述映射关系,确定所述展开面图像的展开边缘线映射到所述三维圆柱图像中对应的位置;
根据预设区域划分规则,在所述三维圆柱图像中,确定所述位置所在的区域;
对所确定的区域进行复制,得到复制图像;
根据所述映射关系,将所述复制图像添加到所述展开面图像中。
为达到上述目的,本发明实施例还提供一种鱼眼图像处理装置,其特征在于,所述装置包括:
获取模块,用于获取待处理鱼眼图像;
第一映射模块,用于根据预先设定的鱼眼图像坐标点与三维圆柱坐标点的映射关系,将所述待处理鱼眼图像映射到三维圆柱面上,得到三维圆柱图像;
第二映射模块,用于在接收到圆柱面展开指令后,根据预先设定的三维圆柱坐标点与展开面图像坐标点的映射关系,将所述三维圆柱图像进行映射,得到展开面图像。
可选的,所述第二映射模块,具体可以用于:
在接收到圆柱面展开指令后,确定展开时长、以及目标展开面图像与所述三维圆柱图像的第一映射关系;
根据所述展开时长、以及所述第一映射关系,确定到达所述展开时长之前的每一时刻展开面图像与所述三维圆柱图像的第二映射关系;
针对到达所述展开时长之前的每一时刻,根据该时刻对应的第二映射关系,将所述三维圆柱图像进行映射,得到该时刻展开面图像;
到达所述展开时长时,根据所述第一映射关系,将所述三维圆柱图像进行映射,得到所述目标展开面图像。
可选的,所述第二映射模块,可以包括:
计时子模块,用于在接收到圆柱面展开指令后,启动计时器,并确定展开时长;
第一确定子模块,用于确定当前时刻下所述计时器中存储的时间值;
判断子模块,用于判断所存储的时间值是否小于所述展开时长;如果小于,触发第一映射子模块,如果大于等于,触发第二映射子模块;
第一映射子模块,用于根据所存储的时间值对应的第三映射关系,将所述三维圆柱图像进行映射,得到所存储的时间值对应的展开曲面图像;其中,大于等于0且小于所述展开时长的每个时间值分别对应一份第三映射关系,一份第三映射关系为:三维圆柱坐标点与一个时间值对应的展开曲面图像坐标点的映射关系;
第二映射子模块,用于根据预先设定的三维圆柱坐标点与展开平面图像坐标点的映射关系,将所述三维圆柱图像进行映射,得到展开平面图像。
可选的,所述三维圆柱坐标点的坐标值包括:第一坐标值、第二坐标值和第三坐标值,所述一个时间值对应的展开曲面图像坐标点的坐标值包括:第四坐标值、第五坐标值和第六坐标值;
所述第一映射子模块,具体可以用于:
针对所存储的每一时间值,计算该时间值与所述展开时长的比值;
根据所述第一坐标值、所述第一坐标值与预设基准点之间的弧长以及所述比值,计算所映射到的第四坐标值;其中,所述弧长根据视点角度及所述三维圆柱的半径确定;
将所述第二坐标值确定为所映射到的第五坐标值;
根据所述第三坐标值、所述三维圆柱的半径以及所述比值,计算所映射到的第六坐标值。
可选的,所述第一映射子模块,具体可以用于:
针对所存储的每一时间值,计算该时间值与所述展开时长的比值;
利用如下算式,进行计算:
所映射到的第四坐标值=第一坐标值+所述比值*[sign(第一坐标值)*所述第一坐标值与预设基准点之间的弧长-第一坐标值];
所述第一坐标值与预设基准点之间的弧长=所述三维圆柱的半径*(π-视点角度);
所述视点角度=tan-1(第一坐标值的绝对值/第三坐标值);
将所述第二坐标值确定为所映射到的第五坐标值;
所映射到的第六坐标值=第三坐标值+所述比值*(-所述三维圆柱的半径-第三坐标值)。
可选的,所述三维圆柱坐标点的坐标值包括:第一坐标值、第二坐标值和第三坐标值,所述展开平面图像坐标点的坐标值包括:第七坐标值、第八坐标值和第九坐标值;
所述第二映射子模块,具体可以用于:
根据所述第一坐标值、以及所述第一坐标值与预设基准点之间的弧长,计算所映射到的第七坐标值;其中,所述弧长根据视点角度及所述三维圆柱的半径确定;
将所述第二坐标值确定为所映射到的第八坐标值;
将所述三维圆柱的半径的相反数确定为映射到的第九坐标值。
可选的,所述第二映射子模块,具体可以用于:利用如下算式,进行计算:
第七坐标值=sign(第一坐标值)*所述第一坐标值与预设基准点之间的弧长;
所述第一坐标值与预设基准点之间的弧长=所述三维圆柱的半径*(π-视点角度);
所述视点角度=tan-1(第一坐标值的绝对值/第三坐标值);
将所述第二坐标值确定为所映射到的第八坐标值;
将所述三维圆柱的半径的相反数确定为映射到的第九坐标值。
可选的,所述装置还包括:第一接收模块、第一确定模块和转动模块,或者,所述装置还包括:第二接收模块、第二确定模块和第一调整模块,其中,
第一接收模块,用于接收用户发送的转动圆柱指令;
第一确定模块,用于确定所述转动圆柱指令对应的转动角度;
转动模块,用于以所述三维圆柱图像的中心线为轴,将所述三维圆柱图像转动所述转动角度;
第二接收模块,用于接收用户发送的视点移动指令;
第二确定模块,用于确定所述视点移动指令对应的视点角度与景深;
第一调整模块,用于根据所确定的视点角度与景深,对所述三维圆柱图像的进行调整。
可选的,所述装置还可以包括:
第三接收模块,用于接收用户发送的缩放指令;
第三确定模块,用于确定所述缩放指令对应的目标景深;
第二调整模块,用于将所述三维圆柱图像的景深调整至所述目标景深。
可选的,所述装置还可以包括:
计时模块,用于在接收用户发送的缩放指令后,启动计时器,并确定缩放时长;
第四确定模块,用于确定当前时刻下所述计时器中存储的时间值;
判断模块,用于判断所存储的时间值是否小于所述缩放时长;如果小于,触发第三调整模块,如果大于等于,触发第四调整模块;
第三调整模块,包括:计算子模块和调整子模块,
计算子模块,用于计算所存储的时间值对应的过渡景深,其中,大于等于0且小于所述缩放时长的每一时间值对应一过渡景深,过渡景深位于所述三维圆柱图像的当前景深与所述目标景深之间;
调整子模块,用于将所述三维圆柱图像的景深调整至所述过渡景深;
第四调整模块,用于将所述三维圆柱图像的景深调整至所述目标景深。
可选的,所述计算子模块,具体可以用于:利用如下算式,进行计算:
过渡景深=所存储的时间值/所述缩放时长*(目标景深-三维圆柱图像的当前景深)+三维圆柱图像的当前景深。
可选的,所述装置还可以包括:
第五确定模块,用于根据所述映射关系,确定所述展开面图像的展开边缘线映射到所述三维圆柱图像中对应的位置;
第六确定模块,用于根据预设区域划分规则,在所述三维圆柱图像中,确定所述位置所在的区域;
复制模块,用于对所确定的区域进行复制,得到复制图像;
添加模块,用于根据所述映射关系,将所述复制图像添加到所述展开面图像中。
为达到上述目的,本发明实施例还提供一种电子设备,其特征在于,包括处理器和存储器;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一种鱼眼图像处理方法。
应用本发明实施例,将鱼眼图像映射到三维圆柱面上,得到三维圆柱图像,在接收到圆柱面展开指令后,将三维圆柱图像映射得到展开面图像;本方案中,三维圆柱图像的图像比半球图像视觉效果更好,如果用户想要看到背面视角的图像区域,不需要手动转动该三维圆柱,只需要发送圆柱面展开指令,便可以看到展开面图像,展开面图像中包含了大视角的图像区域,因此,提高了图像的展示效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种鱼眼图像处理方法的流程示意图;
图2为本发明实施例中的一种鱼眼图像示意图;
图3为本发明实施例中的一种坐标映射示意图;
图4为本发明实施例中的一种三维圆柱图像示意图;
图5为本发明实施例中的一种三维圆柱图像展开为平面图像的俯视图;
图6为本发明实施例中的一种三维圆柱图像展开为平面图像的过程示意图;
图7为本发明实施例中的另一种三维圆柱图像展开为平面图像的俯视图;
图8为本发明实施例中的一种三维圆柱图像转动不同角度的变换示意图;
图9为本发明实施例中的一种三维圆柱图像不同景深的变换示意图;
图10为本发明实施例提供的一种鱼眼图像处理装置的结构示意图;
图11为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决上述技术问题,本发明实施例提供了一种鱼眼图像处理方法、装置及电子设备。该方法及装置可以应用于任意具有图像处理功能的电子设备,例如,计算机,或者鱼眼相机,或者和鱼眼相机连接的服务器,或者和鱼眼相机连接的手持设备等等,具体不做限定。
下面首先对本发明实施例提供的一种鱼眼图像处理方法进行详细说明。
图1为本发明实施例提供的一种鱼眼图像处理方法的流程示意图,包括:
S101:获取待处理鱼眼图像。
S102:根据预先设定的鱼眼图像坐标点与三维圆柱坐标点的映射关系,将该待处理鱼眼图像映射到三维圆柱面上,得到三维圆柱图像。
S103:在接收到圆柱面展开指令后,根据预先设定的三维圆柱坐标点与展开面图像坐标点的映射关系,将该三维圆柱图像进行映射,得到展开面图像。
应用本发明图1所示实施例,将鱼眼图像映射到三维圆柱面上,得到三维圆柱图像,在接收到圆柱面展开指令后,将三维圆柱图像映射得到展开面图像;本方案中,三维圆柱图像的图像比半球图像视觉效果更好,如果用户想要看到背面视角的图像区域,不需要手动转动该三维圆柱,只需要发送圆柱面展开指令,便可以看到展开面图像,展开面图像中包含了大视角的图像区域,因此,提高了图像的展示效果。
下面对图1所示实施例进行详细说明:
S101:获取待处理鱼眼图像。
举例来说,待处理图像可以如图2所示,图2为鱼眼摄像头采集到的图像。
S102:根据预先设定的鱼眼图像坐标点与三维圆柱坐标点的映射关系,将该待处理鱼眼图像映射到三维圆柱面上,得到三维圆柱图像。
鱼眼图像为二维图像,鱼眼图像坐标系也为二维坐标系,举例来说,如图3所示,将鱼眼图像坐标系表示为uv坐标系。三维圆柱图像为三维图像,三维圆柱坐标系为三维坐标系,如图3所示,将三维圆柱坐标系表示为xyz坐标系。
假设鱼眼图像坐标系中的一个鱼眼图像坐标点p的坐标值为(u,v),三维圆柱坐标系中的一个三维圆柱坐标点p’的的坐标值为(x,y,z),三维圆柱的高为h,半径为r,鱼眼图像坐标点p与圆柱底面圆心的连线在xz平面中的投影线与x轴的夹角为α,映射关系可以为:
α=u*2π,x=r*cos(α),y=h*v,z=r*sin(α)
根据该映射关系,将待处理鱼眼图像中的鱼眼图像坐标点映射到三维圆柱坐标系中的三维圆柱坐标点,便得到了三维圆柱图像,三维圆柱图像可以如图4所示。
S103:在接收到圆柱面展开指令后,根据预先设定的三维圆柱坐标点与展开面图像坐标点的映射关系,将该三维圆柱图像进行映射,得到展开面图像。
举例来说,展开面图像可以为平面图像、波浪状图像、预设弧度的曲面图像等等,具体不做限定。直观来说,将三维圆柱图像映射得到展开面图像,也就是将三维圆柱图像进行展开,展开面图像的高度与三维圆柱图像的高度可以相同。
以展开面图像为平面图像为例来说,如图5所示,图5为将三维圆柱图像展开为平面图像的俯视图,假设图5中的B点为三维圆柱图像中的一个点,B点映射到平面图像中的点为E点,O点为三维圆柱图像展开的基准点,B点的坐标为(x,y,z),E点的坐标为(sign(x)*s,y,-r),s为OB的弧长。也就是说,三维圆柱坐标点与平面图像坐标点的映射关系为:将(x,y,z)映射到(sign(x)*s,y,-r)的映射关系。将三维圆柱图像的点按照该映射关系,映射到平面图像中,便得到了平面图像。
作为一种实施方式,执行本方案的电子设备(执行主体,或者称为本电子设备)可以包含显示屏,或者,也可以与一显示设备通信连接;可以在显示屏或者显示设备中展示三维圆柱图像展开为展开面图像的中间过程。
这种情况下,S103可以包括:
步骤一、在接收到圆柱面展开指令后,确定展开时长、以及目标展开面图像与所述三维圆柱图像的第一映射关系。
展开时长即为从接收到圆柱机展开指令、到展开结束持续的时长。展开时长可以预先设定;或者,也可以根据圆柱面展开指令来确定展开时长。比如,执行主体为触摸屏设备,圆柱面展开指令可以为用户手势,根据用户手势幅度的大小确定展开时长;再比如,执行主体为电脑,圆柱面展开指令可以为用户点击鼠标的指令,根据用户点击鼠标的频率确定展开时长,等等,具体不做限定。
目标展开面图像为展开结束后得到的展开面图像。目标展开面图像的形状可以有多种,比如平面图像、波浪状图像、预设弧度的曲面图像等等,具体不做限定。
举例来说,可以预先设定目标展开面图像的形状,计算三维圆柱坐标点与预设形状的目标展开面的映射关系。本发明实施例中提到多个映射关系,为了区分描述,将目标展开面图像与三维圆柱图像的映射关系称为第一映射关系。
或者,也可以根据圆柱面展开指令来确定目标展开面图像的形状。比如,按键1对应平面图像,按键2对应波浪状图像,如果检测到用户点击按键1,则目标展开面图像为平面图像,如果检测到用户点击按键2,则目标展开面图像为波浪状图像。再比如,检测到用户点击一下鼠标,表示目标展开面图像为平面图像,检测到用户点击两下鼠标,表示目标展开面图像为波浪状图像,等等,不再一一列举。
如果确定出目标展开图像为平面图像,则计算三维圆柱坐标点与平面图像的的映射关系,如果确定出目标展开图像为波浪状图像,则计算三维圆柱坐标点与波浪状图像的的映射关系。
步骤二、根据所述展开时长、以及所述第一映射关系,确定到达所述展开时长之前的每一时刻展开面图像与所述三维圆柱图像的第二映射关系。
举例来说,由三维圆柱图像展开得到目标展开面图像,可以为一个匀速展开的过程。这样,可以根据该展开时长,对三维圆柱图像和目标展开面图像之间进行线性插值,也就是对该第一映射关系中包括的三维圆柱坐标点与目标展开面图像坐标点之前进行线性插值。
假设目标展开面图像为平面图像,仍以图5为例进行说明,第一映射关系为:将(x,y,z)映射到(sign(x)*s,y,-r)的映射关系。假设展开时长为T,对三维圆柱图像与平面图像之间进行线性插值,T中的每一时刻对应的第二映射关系为:将(x,y,z)映射到{x+t*sign(x)*s-x,y,t*(-r-z)}的映射关系。其中,t为T中的一个过程量,或者说t为展开过程进行的百分比。比如,T为1秒,当前时刻下展开过程已持续了0.5秒,则t为50%。
步骤三、针对到达所述展开时长之前的每一时刻,根据该时刻对应的第二映射关系,将所述三维圆柱图像进行映射,得到该时刻展开面图像。
步骤二中得到了T中的每一时刻对应的第二映射关系,针对T中的每一时刻,根据该时刻对应的第二映射关系,将三维圆柱图像进行映射,便得到了T中每一时刻的展开面图像,这样,展示给用户的是一动态的展开过程。
步骤三、到达所述展开时长时,根据所述第一映射关系,将所述三维圆柱图像进行映射,得到所述目标展开面图像。
到达T后,展开完成,展示给用户的是目标展开面图像。因此,根据第一映射关系,将三维圆柱图像映射得到目标展开面图像。
可选地,“展示三维圆柱图像展开为展开面图像的中间过程”也可以通过下面的实施方式实现,S103可以包括:
在接收到圆柱面展开指令后,启动计时器,并确定展开时长;
确定当前时刻下所述计时器中存储的时间值;
判断所存储的时间值是否小于所述展开时长;
如果小于,根据所存储的时间值对应的第三映射关系,将所述三维圆柱图像进行映射,得到所存储的时间值对应的展开曲面图像;其中,大于等于0且小于所述展开时长的每个时间值分别对应一份第三映射关系,一份第三映射关系为:三维圆柱坐标点与一个时间值对应的展开曲面图像坐标点的映射关系;
如果大于等于,根据预先设定的三维圆柱坐标点与展开平面图像坐标点的映射关系,将所述三维圆柱图像进行映射,得到展开平面图像。
本实施方式中,以目标展开图像为平面图像为例进行说明。如上所述,展开时长即为从接收到圆柱机展开指令、到展开结束持续的时长。展开时长可以预先设定;或者,也可以根据圆柱面展开指令来确定展开时长。
为了方便描述,将展开时长记作T,将计时器中存储的时间值记作T’。也就是说,在接收到圆柱面展开指令后的T之内是展开过程,T之后为对目标展开面图像的展示过程。展开过程是动态的,展开过程中的每一时刻下的画面内容不同,该画面内容即为展开曲面图像,如图6所示。对平面图像的展示过程是静态的,仅对该平面图像进行展示,但是如果在展示过程中接收到其他指令,则执行其他指令。
举例来说,在接收到圆柱面展开指令后,启动计时器,计时器中的T’值由0开始随时间逐渐增大;如果T’小于T,则需要将该三维圆柱图像映射到展开曲面图像上,且不同的T’值对应不同的映射关系,不同时刻下的展开曲面图像不同。为了区分描述,将三维圆柱坐标点与一个T’值对应的展开曲面图像坐标点的映射关系称为第三映射关系。
假设所述三维圆柱坐标点的坐标值包括:第一坐标值、第二坐标值和第三坐标值,所述一个时间值对应的展开曲面图像坐标点包括:第四坐标值、第五坐标值和第六坐标值;
所述根据所述比值对应的第三映射关系,将所述三维圆柱图像进行映射,包括:
针对所存储的每一时间值,计算该时间值与所述展开时长的比值,也就是T’与T的比值,记作t,t为T中的一个过程量,或者说t为展开过程进行的百分比;
根据所述第一坐标值、所述第一坐标值与预设基准点之间的弧长以及所述比值,计算所映射到的第四坐标值;其中,所述弧长根据视点角度及所述三维圆柱的半径确定;
将所述第二坐标值确定为所映射到的第五坐标值;
根据所述第三坐标值、所述三维圆柱的半径以及所述比值,计算所映射到的第六坐标值。
举例来说,如图7所示,图7与图5内容类似,只是增加了展示过程中的点P,B点为三维圆柱图像中的一个点,B点映射到平面图像中的点为E点,O点为预设基准点,P点为将B点展开到E点过程中的一个点,P点的坐标值包括:第四坐标值、第五坐标值和第六坐标值;B点的坐标为(x,y,z),E点的坐标为(sign(x)*s,y,-r),s为OB的弧长。
图7中,第一坐标值为x,第二坐标值为y,第三坐标值为z,三维圆柱坐标点的坐标为(x,y,z),x与预设基准点之间的弧长为OB的弧长:
本实施方式中,第四坐标值根据x、x与预设基准点之间的弧长以及t,计算得到,具体的,第四坐标值=x+t*[sign(x)*OB的弧长-x],OB的弧长=r*(π-视点角度),视点角度=tan-1(|x|/z);
展开过程中,y值不变,第五坐标值=y;
第六坐标值根据z、r、t,计算得到,具体的,第六坐标值=z+t*(-r-z)。
这样,便可以计算出t在(0,1)区间中每一时刻的映射关系,根据该每一时刻的映射关系,便可以得到该每一时刻下的展开曲面,也就是展示了由三维圆柱图像展开到平面图像的动态过程,展示效果好。
如果t大于等于1,则完成了展开过程,仅对展开后的平面图像进行展示。具体的,假设三维圆柱坐标点的坐标值包括:第一坐标值、第二坐标值和第三坐标值,所述展开平面图像坐标点的坐标值包括:第七坐标值、第八坐标值和第九坐标值;
所述根据预先设定的三维圆柱坐标点与展开平面图像坐标点的映射关系,将所述三维圆柱图像进行映射,得到展开平面图像,包括:
根据所述第一坐标值、以及所述第一坐标值与预设基准点之间的弧长,计算所映射到的第七坐标值;其中,所述弧长根据视点角度及所述三维圆柱的半径确定;
将所述第二坐标值确定为所映射到的第八坐标值;
将所述三维圆柱的半径的相反数确定为映射到的第九坐标值。
图7中,第一坐标值为x,第二坐标值为y,第三坐标值为z,三维圆柱坐标点的坐标为(x,y,z),x与预设基准点之间的弧长为OB的弧长,E点的坐标值包括:第七坐标值、第八坐标值和第九坐标值:
本实施方式中,第七坐标值根据x、x与预设基准点之间的弧长,计算得到,具体的,第七坐标值=sign(x)*OB的弧长,OB的弧长=r*(π-视点角度),视点角度=tan-1(|x|/z);
第八坐标值=y;
第九坐标值为r的相反数,第九坐标值=-r。
将三维圆柱图像的点按照该映射关系,映射到展开平面图像中,便得到了展开平面图像。
下面介绍一个具体的例子:
假设获取到图2中所示的待处理鱼眼图像,鱼眼图像坐标系为uv坐标系。如图3所示,鱼眼图像坐标点与三维圆柱坐标点的映射关系为:α=u*2π,x=r*cos(α),y=h*v,z=r*sin(α),根据该映射关系,将待处理鱼眼图像映射到三维圆柱面上,得到三维圆柱图像。其中,待处理鱼眼图像的坐标点为(u,v),三维圆柱图像的坐标点为(x,y,z)。
接收到圆柱面展开指令,启动计时器,计时器中存储的时间值记作T’。假设目标展开面图像为平面图像,假设展开时长为T。
在接收到圆柱面展开指令之后,确定每一当前时刻下计时器中存储的时间值T’,如果T’小于T,则确定T’对应的第三映射关系为:将(x,y,z)映射到{x+t*sign(x)*s-x,y,t*(-r-z)}的映射关系;其中,(x,y,z)为三维圆柱图像的坐标点,{x+t*sign(x)*s-x,y,t*(-r-z)}为该T’对应的展开曲面图像坐标点,t=T’/T,s=r*(π-α),α=tan-1(|x|/z)。根据该第三映射关系,将三维圆柱图像进行映射,得到展开曲面图像。
如果T’大于等于T,则确定的映射关系为将(x,y,z)映射到(sign(x)*s,y,-r)的映射关系;根据该映射关系,将三维圆柱图像进行映射,得到展开平面图像。
在本发明的一个可选实施例中,展开过程是动态的,展开过程中的每一时刻下的画面内容不同,该画面内容即为展开曲面图像,如图6所示。对平面图像的展示过程是静态的,仅对该平面图像进行展示,但是如果在展示过程中接收到其他指令,则执行其他指令。例如,接收到鼠标右键双击的信号,则生成完全展开指令,三维圆柱图像展开为平面图像。在展示平面图像的过程中,接收到恢复指令,则恢复到三维圆柱图像。
作为一种实施方式,在S102之后、S103之前,还可以包括:
接收用户发送的转动圆柱指令;确定所述转动圆柱指令对应的转动角度;以所述三维圆柱图像的中心线为轴,将所述三维圆柱图像转动所述转动角度。
举例来说,本电子设备包含的显示屏、或者与本电子设备相连的显示设备可以为触摸屏,用户可以通过在触摸屏上做手势来发送转动圆柱指令,比如,如果本电子设备检测到用户在触摸屏上左右滑动的手势,则表示接收到转动圆柱指令。
手势与指令内容的具体对应关系可以根据实际情况设定,比如,可以设定向左滑动为顺时针转动,向右滑动为逆时针转动,还可以设定滑动的幅度与转动角度的对应关系。转动角度可以有正负,比如,顺时针转动为正值,逆时针转动为负值。
假设检测到用户在触摸屏上向左滑动的手势,并确定该手势对应的转动角度为顺时针转动20度,或者说+20度,则以三维圆柱图像的中心线为轴,将三维圆柱图像顺时针转动20度。
图8为三维圆柱图像转动不同角度的变换示意图。
作为一种实施方式,在S102之后、S103之前,还可以包括:
接收用户发送的缩放指令;
确定所述缩放指令对应的目标景深;
将所述三维圆柱图像的景深调整至所述目标景深。
举例来说,本电子设备包含的显示屏、或者与本电子设备相连的显示设备可以为触摸屏,用户可以通过在触摸屏上做手势来发送缩放指令,比如,如果本电子设备检测到用户在触摸屏上手指捏合的手势,则表示接收到缩小指令,如果检测到用户在触摸屏上手指分离的手势,则表示接收到放大指令。
图像缩小也就是图像远离视角,景深变大,图像放大也就是图像与视角距离变近,景深变小;手势与指令内容的具体对应关系可以根据实际情况设定,比如,可以设定手指捏合的幅度与景深变大的对应关系、以及手指分离的幅度与景深变小的对应关系,等等,具体不做限定。
假设检测到用户在触摸屏上手指捏合的手势,并确定该手势对应的目标景深,则将三维圆柱图像的景深调整至目标景深。图9为三维圆柱图像不同景深的变换示意图。
作为一种实施方式,可以在本电子设备的显示屏、或者与本电子设备相连的显示设备中展示调整景深的中间过程,具体的,在接收用户发送的缩放指令后,可以启动计时器,并确定缩放时长;
所述将所述三维圆柱图像的景深调整至所述目标景深,包括:
确定当前时刻下所述计时器中存储的时间值;
判断所存储的时间值是否小于所述缩放时长;
如果小于,计算所存储的时间值对应的过渡景深,其中,大于等于0且小于所述缩放时长的每一时间值对应一过渡景深,过渡景深位于所述三维圆柱图像的当前景深与所述目标景深之间;将所述三维圆柱图像的景深调整至所述过渡景深;
如果大于等于,将所述三维圆柱图像的景深调整至所述目标景深。
缩放时长即为从接收到缩放指令、到缩放结束持续的时长。缩放时长可以预先设定;或者,也可以根据缩放指令来确定缩放时长。比如,执行主体为触摸屏设备,缩放指令可以为用户手势,根据用户手势幅度的大小确定缩放时长。
假设缩放时长为1秒,则在接收到缩放指令后的1秒之内是景深调整过程,将这个过程中的景深称为过渡景深,景深调整过程中的每一时刻下的过渡景深不同。
作为一种实施方式,过渡景深=所存储的时间值/所述缩放时长*(目标景深-三维圆柱图像的当前景深)+三维圆柱图像的当前景深。
本实施方式中,由当前景深过渡到目标景深,图像调整过程更流畅,视觉效果较好。
作为一种实施方式,在S102之后、S103之前,还可以包括:
接收用户发送的视点移动指令;
确定所述视点移动指令对应的视点角度与景深;
根据所确定的视点角度与景深,对所述三维圆柱图像的进行调整。
举例来说,本电子设备包含的显示屏、或者与本电子设备相连的显示设备可以为触摸屏,用户可以通过在触摸屏上做手势来发送视点移动指令,比如,如果本电子设备检测到用户在触摸屏中上下滑动的手势,则表示接收到视点移动指令。
视点移动后,景深和视点角度通常都会发生变化,手势与指令内容的具体对应关系可以根据实际情况设定,比如,可以设定向上滑动的幅度与景深和视点角度变化的对应关系、以及向下滑动的幅度与景深和视点角度变化的对应关系,等等,具体不做限定。
根据该对应关系,确定要达到的视点角度与景深;将三维圆柱图像的视点角度至调整所确定的视点角度,将三维圆柱图像的景深至调整所确定的景深。
作为一种实施方式,可以设定三维圆柱图像的初始景深,也就是S102得到三维圆柱图像后,对该三维圆柱图像进行展示时的景深,之后接收到视点移动指令或者缩放指令后,在该初始景深的基础上进行调整。
比如,初始景深=(h/2)/[tan(fov/2)],fov表示视场角,视场角可以根据实际情况进行设定,比如,可以设定为120度-180度之间的数值。
在本实施例中,确定映射关系的过程、以及根据映射关系将图像进行映射的过程可以在GPU(Graphics Processing Unit,图形处理器)中执行,这样既可以提高计算速度,也可以减少CPU使用率。
作为一种实施方式,在S103之后,还可以包括:
根据所述映射关系,确定所述展开面图像的展开边缘线映射到所述三维圆柱图像中对应的位置;根据预设区域划分规则,在所述三维圆柱图像中,确定所述位置所在的区域;对所确定的区域进行复制,得到复制图像;根据所述映射关系,将所述复制图像添加到所述展开面图像中。
展开边缘线可以如图6中所示,可以理解,如果展开边缘线所在位置存在一个人像,则展开面图像中该人像被拆成两部分,展示效果较差。而本实施方式中,将展开边缘线所在的区域进行复制,并将复制图像添加到展开面图像中,如果展开边缘线所在位置存在一个人像,则将该人像所在区域进行复制,并将复制图像添加至展开面图像中,具体的,可以在展开面图像两个边缘位置各添加一份复制图像,这样,展开面图像两个边缘位置都为完整的人像,提高了展示效果。
比如,以展开边缘线映射到三维圆柱图像中对应的位置为中心线,确定一块预设尺寸的图像区域,对该区域进行复制,并将复制区域分别添加到展开面图像的左右两侧。
再比如,确定该位置(展开边缘线映射到三维圆柱图像中对应的位置)向左预设距离内的区域,对该区域进行复制,并将复制区域添加到展开面图像的右侧边缘,确定该位置向右预设距离内的区域,对该区域进行复制,并将复制区域添加到展开面图像的左侧边缘。
与上述方法实施例相对应,本发明实施例还提供一种鱼眼图像处理装置,如图10所示,所述装置包括:
获取模块1001,用于获取待处理鱼眼图像;
第一映射模块1002,用于根据预先设定的鱼眼图像坐标点与三维圆柱坐标点的映射关系,将所述待处理鱼眼图像映射到三维圆柱面上,得到三维圆柱图像;
第二映射模块1003,用于在接收到圆柱面展开指令后,根据预先设定的三维圆柱坐标点与展开面图像坐标点的映射关系,将所述三维圆柱图像进行映射,得到展开面图像。
作为一种实施方式,第二映射模块1003,具体可以用于:
在接收到圆柱面展开指令后,确定展开时长、以及目标展开面图像与所述三维圆柱图像的第一映射关系;
根据所述展开时长、以及所述第一映射关系,确定到达所述展开时长之前的每一时刻展开面图像与所述三维圆柱图像的第二映射关系;
针对到达所述展开时长之前的每一时刻,根据该时刻对应的第二映射关系,将所述三维圆柱图像进行映射,得到该时刻展开面图像;
到达所述展开时长时,根据所述第一映射关系,将所述三维圆柱图像进行映射,得到所述目标展开面图像。
作为一种实施方式,第二映射模块1003,可以包括:计时子模块、第一确定子模块、判断子模块、第一映射子模块和第二映射子模块(图中未示出),其中,
计时子模块,用于在接收到圆柱面展开指令后,启动计时器,并确定展开时长;
第一确定子模块,用于确定当前时刻下所述计时器中存储的时间值;
判断子模块,用于判断所存储的时间值是否小于所述展开时长;如果小于,触发第一映射子模块,如果大于等于,触发第二映射子模块;
第一映射子模块,用于根据所存储的时间值对应的第三映射关系,将所述三维圆柱图像进行映射,得到所存储的时间值对应的展开曲面图像;其中,大于等于0且小于所述展开时长的每个时间值分别对应一份第三映射关系,一份第三映射关系为:三维圆柱坐标点与一个时间值对应的展开曲面图像坐标点的映射关系;
第二映射子模块,用于根据预先设定的三维圆柱坐标点与展开平面图像坐标点的映射关系,将所述三维圆柱图像进行映射,得到展开平面图像。
作为一种实施方式,所述三维圆柱坐标点的坐标值包括:第一坐标值、第二坐标值和第三坐标值,所述一个时间值对应的展开曲面图像坐标点的坐标值包括:第四坐标值、第五坐标值和第六坐标值;
所述第一映射子模块,具体用于:
针对所存储的每一时间值,计算该时间值与所述展开时长的比值;
根据所述第一坐标值、所述第一坐标值与预设基准点之间的弧长以及所述比值,计算所映射到的第四坐标值;其中,所述弧长根据视点角度及所述三维圆柱的半径确定;
将所述第二坐标值确定为所映射到的第五坐标值;
根据所述第三坐标值、所述三维圆柱的半径以及所述比值,计算所映射到的第六坐标值。
作为一种实施方式,所述第一映射子模块,具体用于:
针对所存储的每一时间值,计算该时间值与所述展开时长的比值;
利用如下算式,进行计算:
所映射到的第四坐标值=第一坐标值+所述比值*[sign(第一坐标值)*所述第一坐标值与预设基准点之间的弧长-第一坐标值];
所述第一坐标值与预设基准点之间的弧长=所述三维圆柱的半径*(π-视点角度);
所述视点角度=tan-1(第一坐标值的绝对值/第三坐标值);
将所述第二坐标值确定为所映射到的第五坐标值;
所映射到的第六坐标值=第三坐标值+所述比值*(-所述三维圆柱的半径-第三坐标值)。
作为一种实施方式,所述三维圆柱坐标点的坐标值包括:第一坐标值、第二坐标值和第三坐标值,所述展开平面图像坐标点的坐标值包括:第七坐标值、第八坐标值和第九坐标值;
所述第二映射子模块,具体可以用于:
根据所述第一坐标值、以及所述第一坐标值与预设基准点之间的弧长,计算所映射到的第七坐标值;其中,所述弧长根据视点角度及所述三维圆柱的半径确定;
将所述第二坐标值确定为所映射到的第八坐标值;
将所述三维圆柱的半径的相反数确定为映射到的第九坐标值。
作为一种实施方式,所述第二映射子模块,具体可以用于:
利用如下算式,进行计算:
第七坐标值=sign(第一坐标值)*所述第一坐标值与预设基准点之间的弧长;
所述第一坐标值与预设基准点之间的弧长=所述三维圆柱的半径*(π-视点角度);
所述视点角度=tan-1(第一坐标值的绝对值/第三坐标值);
将所述第二坐标值确定为所映射到的第八坐标值;
将所述三维圆柱的半径的相反数确定为映射到的第九坐标值。
作为一种实施方式,所述装置还可以包括:第一接收模块、第一确定模块和转动模块(图中未示出),其中,
第一接收模块,用于接收用户发送的转动圆柱指令;
第一确定模块,用于确定所述转动圆柱指令对应的转动角度;
转动模块,用于以所述三维圆柱图像的中心线为轴,将所述三维圆柱图像转动所述转动角度。
作为一种实施方式,所述装置还可以包括:第二接收模块、第二确定模块和第一调整模块(图中未示出),其中,
第二接收模块,用于接收用户发送的视点移动指令;
第二确定模块,用于确定所述视点移动指令对应的视点角度与景深;
第一调整模块,用于根据所确定的视点角度与景深,对所述三维圆柱图像的进行调整。
作为一种实施方式,所述装置还可以包括:第三接收模块、第三确定模块和第二调整模块(图中未示出),其中,
第三接收模块,用于接收用户发送的缩放指令;
第三确定模块,用于确定所述缩放指令对应的目标景深;
第二调整模块,用于将所述三维圆柱图像的景深调整至所述目标景深。
作为一种实施方式,所述装置还可以包括:计时模块、第四确定模块、判断模块、第三调整模块和第四调整模块(图中未示出),其中,
计时模块,用于在接收用户发送的缩放指令后,启动计时器,并确定缩放时长;
第四确定模块,用于确定当前时刻下所述计时器中存储的时间值;
判断模块,用于判断所存储的时间值是否小于所述缩放时长;如果小于,触发第三调整模块,如果大于等于,触发第四调整模块;
第三调整模块,包括:计算子模块和调整子模块,
计算子模块,用于计算所存储的时间值对应的过渡景深,其中,大于等于0且小于所述第二预设数值的每一时间值对应一过渡景深,过渡景深位于所述三维圆柱图像的当前景深与所述目标景深之间;
调整子模块,用于将所述三维圆柱图像的景深调整至所述过渡景深;
第四调整模块,用于将所述三维圆柱图像的景深调整至所述目标景深。
作为一种实施方式,所述计算子模块,具体可以用于:
利用如下算式,进行计算:
过渡景深=所存储的时间值/所述缩放时长*(目标景深-三维圆柱图像的当前景深)+三维圆柱图像的当前景深。
作为一种实施方式,所述装置还可以包括:第五确定模块、第六确定模块、复制模块和添加模块(图中未示出),其中,
第五确定模块,用于根据所述映射关系,确定所述展开面图像的展开边缘线映射到所述三维圆柱图像中对应的位置;
第六确定模块,用于根据预设区域划分规则,在所述三维圆柱图像中,确定所述位置所在的区域;
复制模块,用于对所确定的区域进行复制,得到复制图像;
添加模块,用于根据所述映射关系,将所述复制图像添加到所述展开面图像中。
应用本发明图10所示实施例,将鱼眼图像映射到三维圆柱面上,得到三维圆柱图像,在接收到圆柱面展开指令后,将三维圆柱图像映射得到展开面图像;本方案中,三维圆柱图像的视觉效果比半球图像更好,而且如果用户想要看到背面视角的图像区域,不需要手动转动该三维圆柱,只需要发送圆柱面展开指令,便可以看到展开面图像,展开面图像中包含了大视角的图像区域,因此,提高了图像的展示效果。
本发明实施例还提供了一种电子设备,如图11所示,包括处理器1101和存储器1102,
存储器1102,用于存放计算机程序;
处理器1101,用于执行存储器1102上所存放的程序时,实现上述任一种鱼眼图像处理方法。
上述电子设备提到的存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种鱼眼图像处理方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于图10所示的鱼眼图像处理装置实施例、图11所示的电子设备实施例、以及上述计算机可读存储介质实施例而言,由于其基本相似于图1-9所示的鱼眼图像处理方法实施例,所以描述的比较简单,相关之处参见图1-9所示的鱼眼图像处理方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (21)
1.一种鱼眼图像处理方法,其特征在于,所述方法包括:
获取待处理鱼眼图像;
根据预先设定的鱼眼图像坐标点与三维圆柱坐标点的映射关系,将所述待处理鱼眼图像映射到三维圆柱面上,得到三维圆柱图像;
在接收到圆柱面展开指令后,根据预先设定的三维圆柱坐标点与展开面图像坐标点的映射关系,将所述三维圆柱图像进行映射,得到展开面图像;
其中,所述在接收到圆柱面展开指令后,根据预先设定的三维圆柱坐标点与展开面图像坐标点的映射关系,将所述三维圆柱图像映射到展开面上,得到展开面图像,包括:
在接收到圆柱面展开指令后,确定展开时长、以及目标展开面图像与所述三维圆柱图像的第一映射关系;根据所述展开时长、以及所述第一映射关系,确定到达所述展开时长之前的每一时刻展开面图像与所述三维圆柱图像的第二映射关系;针对到达所述展开时长之前的每一时刻,根据该时刻对应的第二映射关系,将所述三维圆柱图像进行映射,得到该时刻展开面图像;到达所述展开时长时,根据所述第一映射关系,将所述三维圆柱图像进行映射,得到所述目标展开面图像;
或者,在接收到圆柱面展开指令后,启动计时器,并确定展开时长;确定当前时刻下所述计时器中存储的时间值;判断所存储的时间值是否小于所述展开时长;如果小于,根据所存储的时间值对应的第三映射关系,将所述三维圆柱图像进行映射,得到所存储的时间值对应的展开曲面图像;其中,大于等于0且小于所述展开时长的每个时间值分别对应一份第三映射关系,一份第三映射关系为:三维圆柱坐标点与一个时间值对应的展开曲面图像坐标点的映射关系;如果大于等于,根据预先设定的三维圆柱坐标点与展开平面图像坐标点的映射关系,将所述三维圆柱图像进行映射,得到展开平面图像。
2.根据权利要求1所述的方法,其特征在于,所述三维圆柱坐标点的坐标值包括:第一坐标值、第二坐标值和第三坐标值,所述一个时间值对应的展开曲面图像坐标点的坐标值包括:第四坐标值、第五坐标值和第六坐标值;
所述根据所存储的时间值对应的第三映射关系,将所述三维圆柱图像进行映射,包括:
针对所存储的每一时间值,计算该时间值与所述展开时长的比值;
根据所述第一坐标值、所述第一坐标值与预设基准点之间的弧长以及所述比值,计算所映射到的第四坐标值;其中,所述弧长根据视点角度及所述三维圆柱的半径确定;
将所述第二坐标值确定为所映射到的第五坐标值;
根据所述第三坐标值、所述三维圆柱的半径以及所述比值,计算所映射到的第六坐标值。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一坐标值、所述第一坐标值与预设基准点之间的弧长以及所述比值,计算所映射到的第四坐标值,包括:
所映射到的第四坐标值=第一坐标值+所述比值*[sign(第一坐标值)*所述第一坐标值与预设基准点之间的弧长-第一坐标值];
所述第一坐标值与预设基准点之间的弧长=所述三维圆柱的半径*(π-视点角度);
所述视点角度=tan-1(第一坐标值的绝对值/第三坐标值);
所述根据所述第三坐标值、所述三维圆柱的半径以及所述比值,计算所映射到的第六坐标值,包括:
所映射到的第六坐标值=第三坐标值+所述比值*(-所述三维圆柱的半径-第三坐标值)。
4.根据权利要求1所述的方法,其特征在于,所述三维圆柱坐标点的坐标值包括:第一坐标值、第二坐标值和第三坐标值,所述展开平面图像坐标点的坐标值包括:第七坐标值、第八坐标值和第九坐标值;
所述根据预先设定的三维圆柱坐标点与展开平面图像坐标点的映射关系,将所述三维圆柱图像进行映射,得到展开平面图像,包括:
根据所述第一坐标值、以及所述第一坐标值与预设基准点之间的弧长,计算所映射到的第七坐标值;其中,所述弧长根据视点角度及所述三维圆柱的半径确定;
将所述第二坐标值确定为所映射到的第八坐标值;
将所述三维圆柱的半径的相反数确定为映射到的第九坐标值。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一坐标值、以及所述第一坐标值与预设基准点之间的弧长,计算所映射到的第七坐标值,包括:
第七坐标值=sign(第一坐标值)*所述第一坐标值与预设基准点之间的弧长;
所述第一坐标值与预设基准点之间的弧长=所述三维圆柱的半径*(π-视点角度);
所述视点角度=tan-1(第一坐标值的绝对值/第三坐标值)。
6.根据权利要求1所述的方法,其特征在于,在所述得到三维圆柱图像之后,还包括:
接收用户发送的转动圆柱指令;确定所述转动圆柱指令对应的转动角度;以所述三维圆柱图像的中心线为轴,将所述三维圆柱图像转动所述转动角度;
或者,
接收用户发送的视点移动指令;确定所述视点移动指令对应的视点角度与景深;根据所确定的视点角度与景深,对所述三维圆柱图像的进行调整。
7.根据权利要求1所述的方法,其特征在于,在所述得到三维圆柱图像之后,还包括:
接收用户发送的缩放指令;
确定所述缩放指令对应的目标景深;
将所述三维圆柱图像的景深调整至所述目标景深。
8.根据权利要求7所述的方法,其特征在于,在接收用户发送的缩放指令后,还包括:启动计时器,并确定缩放时长;
所述将所述三维圆柱图像的景深调整至所述目标景深,包括:
确定当前时刻下所述计时器中存储的时间值;
判断所存储的时间值是否小于所述缩放时长;
如果小于,计算所存储的时间值对应的过渡景深,其中,大于等于0且小于所述缩放时长的每一时间值对应一过渡景深,过渡景深位于所述三维圆柱图像的当前景深与所述目标景深之间;将所述三维圆柱图像的景深调整至所述过渡景深;
如果大于等于,将所述三维圆柱图像的景深调整至所述目标景深。
9.根据权利要求8所述的方法,其特征在于,所述计算所存储的时间值对应的过渡景深,包括:
过渡景深=所存储的时间值/所述缩放时长*(目标景深-三维圆柱图像的当前景深)+三维圆柱图像的当前景深。
10.根据权利要求1所述的方法,其特征在于,在所述根据预先设定的三维圆柱坐标点与展开面图像坐标点的映射关系,将所述三维圆柱图像映射到展开面上,得到展开面图像之后,还包括:
根据所述映射关系,确定所述展开面图像的展开边缘线映射到所述三维圆柱图像中对应的位置;
根据预设区域划分规则,在所述三维圆柱图像中,确定所述位置所在的区域;
对所确定的区域进行复制,得到复制图像;
根据所述映射关系,将所述复制图像添加到所述展开面图像中。
11.一种鱼眼图像处理装置,其特征在于,所述装置包括:
获取模块,用于获取待处理鱼眼图像;
第一映射模块,用于根据预先设定的鱼眼图像坐标点与三维圆柱坐标点的映射关系,将所述待处理鱼眼图像映射到三维圆柱面上,得到三维圆柱图像;
第二映射模块,用于在接收到圆柱面展开指令后,根据预先设定的三维圆柱坐标点与展开面图像坐标点的映射关系,将所述三维圆柱图像进行映射,得到展开面图像;
其中,所述第二映射模块,具体用于:
在接收到圆柱面展开指令后,确定展开时长、以及目标展开面图像与所述三维圆柱图像的第一映射关系;根据所述展开时长、以及所述第一映射关系,确定到达所述展开时长之前的每一时刻展开面图像与所述三维圆柱图像的第二映射关系;针对到达所述展开时长之前的每一时刻,根据该时刻对应的第二映射关系,将所述三维圆柱图像进行映射,得到该时刻展开面图像;到达所述展开时长时,根据所述第一映射关系,将所述三维圆柱图像进行映射,得到所述目标展开面图像;
或者,所述第二映射模块,包括:
计时子模块,用于在接收到圆柱面展开指令后,启动计时器,并确定展开时长;
第一确定子模块,用于确定当前时刻下所述计时器中存储的时间值;
判断子模块,用于判断所存储的时间值是否小于所述展开时长;如果小于,触发第一映射子模块,如果大于等于,触发第二映射子模块;
第一映射子模块,用于根据所存储的时间值对应的第三映射关系,将所述三维圆柱图像进行映射,得到所存储的时间值对应的展开曲面图像;其中,大于等于0且小于所述展开时长的每个时间值分别对应一份第三映射关系,一份第三映射关系为:三维圆柱坐标点与一个时间值对应的展开曲面图像坐标点的映射关系;
第二映射子模块,用于根据预先设定的三维圆柱坐标点与展开平面图像坐标点的映射关系,将所述三维圆柱图像进行映射,得到展开平面图像。
12.根据权利要求11所述的装置,其特征在于,所述三维圆柱坐标点的坐标值包括:第一坐标值、第二坐标值和第三坐标值,所述一个时间值对应的展开曲面图像坐标点的坐标值包括:第四坐标值、第五坐标值和第六坐标值;
所述第一映射子模块,具体用于:
针对所存储的每一时间值,计算该时间值与所述展开时长的比值;
根据所述第一坐标值、所述第一坐标值与预设基准点之间的弧长以及所述比值,计算所映射到的第四坐标值;其中,所述弧长根据视点角度及所述三维圆柱的半径确定;
将所述第二坐标值确定为所映射到的第五坐标值;
根据所述第三坐标值、所述三维圆柱的半径以及所述比值,计算所映射到的第六坐标值。
13.根据权利要求12所述的装置,其特征在于,所述第一映射子模块,具体用于:
针对所存储的每一时间值,计算该时间值与所述展开时长的比值;
利用如下算式,进行计算:
所映射到的第四坐标值=第一坐标值+所述比值*[sign(第一坐标值)*所述第一坐标值与预设基准点之间的弧长-第一坐标值];
所述第一坐标值与预设基准点之间的弧长=所述三维圆柱的半径*(π-视点角度);
所述视点角度=tan-1(第一坐标值的绝对值/第三坐标值);
将所述第二坐标值确定为所映射到的第五坐标值;
所映射到的第六坐标值=第三坐标值+所述比值*(-所述三维圆柱的半径-第三坐标值)。
14.根据权利要求11所述的装置,其特征在于,所述三维圆柱坐标点的坐标值包括:第一坐标值、第二坐标值和第三坐标值,所述展开平面图像坐标点的坐标值包括:第七坐标值、第八坐标值和第九坐标值;
所述第二映射子模块,具体用于:
根据所述第一坐标值、以及所述第一坐标值与预设基准点之间的弧长,计算所映射到的第七坐标值;其中,所述弧长根据视点角度及所述三维圆柱的半径确定;
将所述第二坐标值确定为所映射到的第八坐标值;
将所述三维圆柱的半径的相反数确定为映射到的第九坐标值。
15.根据权利要求14所述的装置,其特征在于,所述第二映射子模块,具体用于:利用如下算式,进行计算:
第七坐标值=sign(第一坐标值)*所述第一坐标值与预设基准点之间的弧长;
所述第一坐标值与预设基准点之间的弧长=所述三维圆柱的半径*(π-视点角度);
所述视点角度=tan-1(第一坐标值的绝对值/第三坐标值);
将所述第二坐标值确定为所映射到的第八坐标值;
将所述三维圆柱的半径的相反数确定为映射到的第九坐标值。
16.根据权利要求11所述的装置,其特征在于,所述装置还包括:第一接收模块、第一确定模块和转动模块,或者,所述装置还包括:第二接收模块、第二确定模块和第一调整模块,其中,
第一接收模块,用于接收用户发送的转动圆柱指令;
第一确定模块,用于确定所述转动圆柱指令对应的转动角度;
转动模块,用于以所述三维圆柱图像的中心线为轴,将所述三维圆柱图像转动所述转动角度;
第二接收模块,用于接收用户发送的视点移动指令;
第二确定模块,用于确定所述视点移动指令对应的视点角度与景深;
第一调整模块,用于根据所确定的视点角度与景深,对所述三维圆柱图像的进行调整。
17.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第三接收模块,用于接收用户发送的缩放指令;
第三确定模块,用于确定所述缩放指令对应的目标景深;
第二调整模块,用于将所述三维圆柱图像的景深调整至所述目标景深。
18.根据权利要求17所述的装置,其特征在于,所述装置还包括:
计时模块,用于在接收用户发送的缩放指令后,启动计时器,并确定缩放时长;
第四确定模块,用于确定当前时刻下所述计时器中存储的时间值;
判断模块,用于判断所存储的时间值是否小于所述缩放时长;如果小于,触发第三调整模块,如果大于等于,触发第四调整模块;
第三调整模块,包括:计算子模块和调整子模块,
计算子模块,用于计算所存储的时间值对应的过渡景深,其中,大于等于0且小于所述缩放时长的每一时间值对应一过渡景深,过渡景深位于所述三维圆柱图像的当前景深与所述目标景深之间;
调整子模块,用于将所述三维圆柱图像的景深调整至所述过渡景深;
第四调整模块,用于将所述三维圆柱图像的景深调整至所述目标景深。
19.根据权利要求18所述的装置,其特征在于,所述计算子模块,具体用于:利用如下算式,进行计算:
过渡景深=所存储的时间值/所述缩放时长*(目标景深-三维圆柱图像的当前景深)+三维圆柱图像的当前景深。
20.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第五确定模块,用于根据所述映射关系,确定所述展开面图像的展开边缘线映射到所述三维圆柱图像中对应的位置;
第六确定模块,用于根据预设区域划分规则,在所述三维圆柱图像中,确定所述位置所在的区域;
复制模块,用于对所确定的区域进行复制,得到复制图像;
添加模块,用于根据所述映射关系,将所述复制图像添加到所述展开面图像中。
21.一种电子设备,其特征在于,包括处理器和存储器;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-10任一所述的方法步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711156272.0A CN109816587B (zh) | 2017-11-20 | 2017-11-20 | 一种鱼眼图像处理方法、装置及电子设备 |
PCT/CN2018/116356 WO2019096323A1 (zh) | 2017-11-20 | 2018-11-20 | 一种鱼眼图像处理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711156272.0A CN109816587B (zh) | 2017-11-20 | 2017-11-20 | 一种鱼眼图像处理方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109816587A CN109816587A (zh) | 2019-05-28 |
CN109816587B true CN109816587B (zh) | 2021-04-16 |
Family
ID=66538869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711156272.0A Active CN109816587B (zh) | 2017-11-20 | 2017-11-20 | 一种鱼眼图像处理方法、装置及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109816587B (zh) |
WO (1) | WO2019096323A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112116530B (zh) * | 2019-06-19 | 2023-08-18 | 杭州海康威视数字技术股份有限公司 | 鱼眼图像畸变矫正方法、装置和虚拟显示系统 |
CN112132740B (zh) * | 2019-06-25 | 2023-08-25 | 杭州海康威视数字技术股份有限公司 | 视频图像显示方法、装置及系统 |
CN111681160B (zh) * | 2020-05-28 | 2021-07-06 | 深圳市无虚科技有限公司 | 曲面图像的还原方法、装置、设备及可读存储介质 |
CN113971703A (zh) * | 2020-07-22 | 2022-01-25 | 阿里巴巴集团控股有限公司 | 一种图像处理方法、装置、电子设备以及存储介质 |
CN111813290B (zh) * | 2020-09-09 | 2020-12-01 | 武汉中科通达高新技术股份有限公司 | 一种数据处理方法、装置以及电子设备 |
CN112446823B (zh) * | 2021-02-01 | 2021-04-27 | 武汉中科通达高新技术股份有限公司 | 监控图像展示方法和装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6515664B1 (en) * | 1999-11-12 | 2003-02-04 | Pixaround.Com Pte Ltd | Fast single-pass cylindrical to planar projection |
JP2003141562A (ja) * | 2001-10-29 | 2003-05-16 | Sony Corp | 非平面画像の画像処理装置及び画像処理方法、記憶媒体、並びにコンピュータ・プログラム |
CN1266653C (zh) * | 2002-12-26 | 2006-07-26 | 联想(北京)有限公司 | 一种显示三维图像的方法 |
JP4629131B2 (ja) * | 2008-09-03 | 2011-02-09 | 大日本印刷株式会社 | 画像変換装置 |
US8325187B2 (en) * | 2009-10-22 | 2012-12-04 | Samsung Electronics Co., Ltd. | Method and device for real time 3D navigation in panoramic images and cylindrical spaces |
CN102780834A (zh) * | 2011-05-11 | 2012-11-14 | 张茂军 | 环眼镜头图像半柱面全景展开方法 |
CN105488775A (zh) * | 2014-10-09 | 2016-04-13 | 东北大学 | 一种基于六摄像机环视的柱面全景生成装置及方法 |
CN105825470A (zh) * | 2016-03-10 | 2016-08-03 | 广州欧科信息技术股份有限公司 | 基于点云影像的鱼眼影像纠正方法 |
CN105809615A (zh) * | 2016-03-10 | 2016-07-27 | 广州欧科信息技术股份有限公司 | 点云数据影像化方法 |
CN106384330B (zh) * | 2016-09-21 | 2022-02-15 | 深圳看到科技有限公司 | 全景画面播放方法及全景画面播放装置 |
CN107133912A (zh) * | 2017-04-01 | 2017-09-05 | 纵目科技(上海)股份有限公司 | 全景泊车图像畸变校正方法及装置 |
-
2017
- 2017-11-20 CN CN201711156272.0A patent/CN109816587B/zh active Active
-
2018
- 2018-11-20 WO PCT/CN2018/116356 patent/WO2019096323A1/zh active Application Filing
Non-Patent Citations (1)
Title |
---|
鱼眼图像校正软件的关键技术研究;刘红军,陈琛,苗立刚,刘宵婵;《仪表技术与传感器》;20111231(第7期);第100-105页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2019096323A1 (zh) | 2019-05-23 |
CN109816587A (zh) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109816587B (zh) | 一种鱼眼图像处理方法、装置及电子设备 | |
CN108537721B (zh) | 全景图像的处理方法、装置及电子设备 | |
US11140339B2 (en) | Video image processing method, apparatus and terminal | |
US10748348B2 (en) | Method, apparatus and electronic device for displaying an image and storage medium | |
WO2015180659A1 (zh) | 图像处理方法和图像处理装置 | |
US20180115714A1 (en) | Video stabilization for mobile devices | |
WO2019237745A1 (zh) | 人脸图像处理方法、装置、电子设备及计算机可读存储介质 | |
US10317777B2 (en) | Automatic zooming method and apparatus | |
US20210084228A1 (en) | Tracking shot method and device, and storage medium | |
KR102551713B1 (ko) | 전자 장치 및 그 이미지 처리 방법 | |
US20150256815A1 (en) | 3d camera calibration | |
WO2017067262A1 (zh) | 一种图像处理方法和装置 | |
CN111010476A (zh) | 一种图像显示方法、装置、终端和可读存储介质 | |
CN107146197A (zh) | 一种缩略图生成方法及装置 | |
CN105809664B (zh) | 生成三维图像的方法和装置 | |
WO2019019372A1 (zh) | 移动终端的图片操作控制方法、装置、移动终端及介质 | |
CN111968246B (zh) | 场景切换的方法、装置、电子设备和存储介质 | |
CN114612575A (zh) | 一种相机参数的标定、三维数据生成方法和系统 | |
CN116452745A (zh) | 手部建模、手部模型处理方法、设备和介质 | |
WO2019051785A1 (zh) | 一种用于智能终端的图标显示方法及图标显示装置 | |
CN109146775B (zh) | 二维图片转换方法、装置、设备及存储介质 | |
WO2015062176A1 (zh) | 多点触控的多媒体球幕演示仪及其多点触控方法 | |
CN108932089B (zh) | 一种目标对象的调整方法、装置、电子设备及存储介质 | |
CN107767326B (zh) | 图像中对象变换处理方法、装置及计算设备 | |
CN110248148A (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 |