Skip to content

Latest commit

 

History

History
67 lines (44 loc) · 2.16 KB

README.md

File metadata and controls

67 lines (44 loc) · 2.16 KB

全景图处理工具

这个项目包含了一系列用于处理全景图的Python脚本。主要功能包括将等距柱状投影(Equirectangular)全景图转换为立方体贴图(Cubemap)和生成透视图(Perspective View)。

功能

  1. 全景图到立方体贴图的转换
  2. 全景图到透视图的转换

依赖

  • Python 3.x
  • OpenCV (cv2)
  • NumPy

使用方法

1. 全景图到立方体贴图的转换

运行 run_unwrapper.py 脚本来处理全景图并生成立方体贴图。

python run_unwrapper.py [--input_dir INPUT_DIR] [--output_dir OUTPUT_DIR] [--scale SCALE]

参数说明:

  • --input_dir: 输入全景图所在的文件夹路径(默认:'img\panorama')
  • --output_dir: 输出立方体贴图的保存文件夹路径(默认:'img\six_face')
  • --scale: 输出图片的缩放因子(默认:2)

2. 全景图到透视图的转换

运行 run_perspective_generator.py 脚本来处理全景图并生成透视图。

python run_perspective_generator.py

注意:在脚本中可以修改输入输出文件夹路径和其他参数。

原理

全景图到立方体贴图的转换

  1. 读取全景图并根据需要调整大小。
  2. 使用等距柱状投影到立方体投影的映射关系,计算立方体六个面上每个像素对应的全景图坐标。
  3. 使用双线性插值从全景图中采样得到立方体每个面的像素值。
  4. 对生成的每个面进行水平镜像处理。
  5. 保存六个面的图像。

全景图到透视图的转换

  1. 读取全景图。
  2. 根据指定的视场角(FOV)和方向(heading和pitch)创建透视投影矩阵。
  3. 使用该矩阵将等距柱状投影坐标映射到透视图坐标。
  4. 使用双线性插值从全景图中采样得到透视图的像素值。
  5. 生成并保存多个方向的透视图(左、右、前、后)。

注意事项

  • 确保输入图像是标准的等距柱状投影全景图。
  • 输出图像的质量和大小可能会受到输入图像分辨率和设置的缩放因子的影响。
  • 对于大尺寸的输入图像,处理可能需要较长时间。

贡献

欢迎提交问题报告和改进建议。