1.一种全景图像映射方法,将全景图像或视频A对应的球面映射为二维平面图像或视频B,首先根据球面的纬度,将球面分成三个区域:分别记为区域I,区域II和区域III;将所述三个区域分别映射为方形平面I′、矩形平面II′和方形平面III′;再将平面I′、II′、III′拼成一个平面;所得的平面即为二维平面图像或视频B;
所述区域I对应球面上纬度为-90°~Z1的区域,区域II对应球面上纬度为Z1~Z2的区域,区域III对应球面上纬度为Z2~90°的区域;所述参数Z1、取值可自行设置并满足条件:-90°≤Z1≤Z2和Z1≤Z2≤90°;
所述方形平面I′分辨率为WI×WI,矩形平面II′分辨率为WII×HII,方形平面III′分辨率为WIII×WIII;所述参数WI、WII、HII、WIII取值可自行设置;
所述映射方法包括如下步骤:
1)针对方形平面I′中的每个像素点,根据平面I′中像素点的坐标(X,Y),计算得到该像素点对应的球面坐标Coordinate,包括经度和纬度;然后根据球面坐标Coordinate取球面上对应位置的像素值或对附近像素通过插值计算得到相应像素值,作为平面I′中像素点(X,Y)的像素值;所述根据像素点在平面I′中的坐标(X,Y)计算其对应的球面坐标Coordinate,包括如下步骤:
1.1)计算得到该像素点到方形平面I′中心的垂直距离和水平距离,取其中较大者记为m;
1.2)将方形平面I′看作是由多个同心方形组成,计算得到该像素点到其所在的同心方形上第零个点的距离,记为n;所述第零个点的位置可任意选取;按照顺时针或逆时针方式计算得到该像素点到其所在的同心方形上第零个点的距离;
1.3)根据n和m计算得到方形平面I′中坐标为(X,Y)的点所对应的纬度latitude和经度longitude,即对应的球面坐标Coordinate;
2)针对矩形平面II′中的每个像素点,根据平面II′中像素点的坐标(X,Y),计算得到该像素点对应的球面坐标Coordinate,包括经度和纬度;然后根据球面坐标Coordinate取球面上对应位置的像素值或对附近像素通过插值计算得到相应像素值,作为平面II′中像素点(X,Y)的像素值;
3)针对方形平面III′中的每个像素点,根据平面III′中像素点的坐标(X,Y),计算得到该像素点对应的球面坐标Coordinate,包括经度和纬度;然后根据球面坐标Coordinate取球面上对应位置的像素值或附近像素通过插值计算得到相应像素值,作为平面I′中像素点(X,Y)的像素值;所述根据像素点在平面III′中的坐标(X,Y)计算其对应的球面坐标Coordinate的方法为:
3.1)计算得到该像素点到方形平面III′中心的垂直距离和水平距离,取其中较大的一个记为m;
3.2)将方形平面III′看作是由多个同心方形组成,计算得到该像素点到其所在的同心方形上第零个点的距离,记为n;其中第零个点的位置可任意选取;
3.3)根据n和m计算得到方形平面III′中坐标为(X,Y)的点所对应的纬度latitude和经度longitude;
4)根据参数WI、WII、HII、WIII取值,将平面I′、II′、III′拼接成一个平面。
2.如权利要求1所述映射方法,其特征是,步骤1.1)通过式1计算得到:
m=max(abs(WI÷2-X-0.5),abs(WI÷2-Y-0.5)) (式1)
其中,m为像素点到方形平面I′中心的垂直距离和水平距离中较大者;
步骤1.2)通过式2计算:
其中,m2=(WI-1)÷2-m;n为像素点到其所在的同心方形上第零个点的距离;
步骤1.3)通过式3和式4计算:
latitude=(Z1+90°)×m÷(WI÷2)-90° (式3)
longitude=n÷(8×m)×360°-180° (式4)
其中,latitude为方形平面I′中坐标为(X,Y)的点所对应的纬度;longitude为相应的经度。
3.如权利要求1所述映射方法,其特征是,步骤2)根据像素点在平面II′中的坐标(X,Y)计算其对应的球面坐标Coordinate的公式为:
latitude=Z2-(Z2-Z1)×(Y+0.5)÷HII (式5)
longitude=360°×(X+0.5)÷WII-180°+offset (式6)
其中,offset为矩形平面II′中心对应的经度,可自行设置。
4.如权利要求1所述映射方法,其特征是,步骤3.1)通过式7计算得到:
m=max(abs(WIII÷2-X-0.5),abs(WIII÷2-Y-0.5)) (式7)
其中,m为像素点到方形平面III′中心的垂直距离和水平距离中较大者;
步骤3.2)通过式8计算:
其中,m2=(WIII-1)÷2-m;n为像素点到其所在的同心方形上第零个点的距离;
步骤3.3)通过式9和式10计算:
latitude=90°-(90°-Z2)×m÷(WIII÷2) (式9)
longitude=n÷(8×m)×360°-180° (式10)
其中,latitude为方形平面III′中坐标为(X,Y)的点所对应的纬度;longitude为相应的经度。
5.如权利要求1所述映射方法,其特征是,步骤4)根据参数WI、WII、HII、WIII取值,将平面I′、II′、III′拼接成一个平面的方法,具体地:当WI=0.25×WII=HII=WIII时,首先将矩形平面II′分成四个分辨率为HII×HII的小平面,分别记作:II′1、II′2、II′3、II′4;然后按照平面II′1、平面II′2、平面II′3、平面III′、平面II′4、平面I′的顺序,将上述六个平面进行拼接,拼接过程中将平面III′顺时针旋转90°,将平面II′4逆时针旋转90°,即得到分辨率为6WI×WI的一个平面。
6.一种全景图像反映射方法,将二维平面图像或视频B映射回球面,得到全景图像或视频A;所述二维平面图像或视频B由三个平面拼接而成,所述三个平面分别记为平面I′、平面II′、平面III′;所述平面I′是分辨率为WI×WI的方形平面,平面II′是分辨率为WII×HII的矩形平面,平面III′是分辨率为WIII×WIII的方形平面;所述反映射方法将平面I′映射回球面上纬度为-90°~Z1的区域I,将平面II′映射回球面上纬度为Z1~Z2的区域II,将平面III′映射回球面上纬度为Z2~90°的区域III;所述参数Z1、Z2、WI、WII、HII、WIII取值包括但不限于从码流中获取;所述反映射方法包括以下步骤:
1)将二维平面图像B拆分成平面I′、平面II′、平面III′;
2)对于球面上纬度为-90°~Z1的区域中的每一个像素点,根据其球面坐标Coordinate(经度和纬度)计算该像素点对应到平面I′中的坐标(X,Y),取平面I′中(X,Y)处的像素值或对附近像素进行插值得到的像素值,作为球面上坐标Coordinate处像素点的值;
3)对于球面上纬度为Z1~Z2的区域中的每一个像素点,根据其球面坐标Coordinate(经度和纬度)计算其对应到平面II′中的坐标(X,Y),取平面II′中(X,Y)处的像素值或对附近像素进行插值得到的像素值,作为球面上坐标Coordinate处像素点的值;
4)对于球面上纬度为Z2~90°的区域中的每一个像素点,根据其球面坐标Coordinate(经度和纬度)计算其对应到平面III′中的坐标(X,Y),取平面III′中(X,Y)处的像素值或对附近像素进行插值得到的像素值,作为球面上坐标Coordinate处像素点的值;
由此实现将二维平面图像或视频B映射回球面,得到全景图像或视频A。
7.如权利要求6所述反映射方法,其特征是,步骤1)中,当参数WI=0.25×WII=HII=WIII,且平面I′、平面II′、平面III′拼接成的二维平面图像B分辨率为6WI×WI时,将二维平面图像B分成6个WI×WI的平面,分别记作平面1、平面2、平面3、平面4、平面5、平面6,将平面4逆时针旋转90°得到平面III′;平面6即为平面I′;将剩下的四个平面按照平面1、平面2、平面3、平面5的顺序拼接为分辨率4WI×WI的平面,其中平面5顺时针旋转90°,即得到平面II′。
8.如权利要求6所述反映射方法,其特征是,步骤2)对于球面上纬度为-90°~Z1的区域中的每一个像素点,根据该像素点球面坐标Coordinate计算其对应到平面I′中的坐标(X,Y)的步骤如下:
2.1)根据纬度latitude计算球面上的点在平面I′中的对应点距离平面I′中心的距离m;
2.2)根据经度longitude计算球面上的点在平面I′中的对应点距离该对应点所在的同心方形中第零个点的距离n;
2.3)根据m和n的值计算出球面上的点在平面I′中的对应点的坐标(X,Y)。
9.如权利要求8所述反映射方法,其特征是,步骤2.1)通过式11根据纬度latitude计算球面上的点在平面I′中的对应点距离平面I′中心的距离m:
m=(WI÷2)×(latitude+90°)÷(Z1+90°) (式11)
步骤2.2)通过式12根据经度longitude计算球面上的点在平面I′中的对应点距离该对应点所在的同心方形中第零个点的距离n:
n=8×m×(longitude+180°)÷360° (式12)
步骤2.3)通过式13根据m和n的值计算出球面上的点在平面I′中的对应点的坐标(X,Y):
其中,m2=(WI-1)÷2-m。
10.如权利要求6所述反映射方法,其特征是,步骤3)对于球面上纬度为Z1~Z2的区域中的每一个像素点,根据该像素点球面坐标Coordinate,通过式14和式15计算得到其对应到平面II′中的坐标(X,Y):
Y=(Z2-latitude)×HII÷(Z2-Z1)-0.5 (式14)
X=(longitude+180°-offset)÷360°×WII-0.5 (式15)
其中,offset为矩形平面II′中心对应的经度。
11.如权利要求6所述反映射方法,其特征是,步骤4)对于球面上纬度为Z2~90°的区域中的每一个像素点,根据其球面坐标Coordinate(经度和纬度)计算其对应到平面III′中的坐标(X,Y),取平面III′中(X,Y)处的像素值或对附近像素进行插值得到的像素值,作为球面上坐标Coordinate处像素点的值;包括如下步骤:
4.1)根据纬度latitude计算球面上的点在平面III′中的对应点距离平面III′中心的距离m;
4.2)根据经度longitude计算球面上的点在平面III′中的对应点距离该对应点所在的同心方形中第零个点的距离n;
4.3)根据m和n的值计算出球面上的点在平面III′中的对应点的坐标(X,Y)。
12.如权利要求11所述反映射方法,其特征是,步骤4.1)通过式16根据纬度latitude计算球面上的点在平面III′中的对应点距离平面III′中心的距离m:
m=(WIII÷2)×(90°-latitude)÷(90°-Z2) (式16)
步骤4.2)通过式17根据经度longitude计算球面上的点在平面III′中的对应点距离该对应点所在的同心方形中第零个点的距离n:
n=8×m×(longitude+180°)÷360° (式17)
步骤4.3)通过式18根据m和n的值计算出球面上的点在平面III′中的对应点的坐标(X,Y):
m2=(WIII-1)÷2-m
其中,m2=(WIII-1)÷2-m。