Skip to content

cuixing158/DualFisheyeRendering

Repository files navigation

Direct Rendering of Dual-Fisheye Image Onto a Spherical Surface

Open in MATLAB Online

This repository uses dual-fisheye calibration parameters to map two single-frame square circular fisheye images onto a unit sphere, and provides operation handles for various Graphic Objects. This enables more flexible and immersive panorama viewing with mouse-driven panning and zooming. You can also dynamically adjust stitching parameters and Graphic Object state properties in real time, and control the camera properties via mouse interaction to further modify and enhance the panorama preview experience.

What are dual-fisheye calibration parameters and how are they obtained? Refer to the examples in my another repository (https://github.com/cuixing158/panorama360) whose filenames start with "ExampleDualFisheyeStitching*" to perform calibration. For example, "ExampleDualFisheyeStitchingOptimWithDeepLearning.m" uses a deep-learning-based calibration method to solve for the 12 calibration parameters.

Features

Dual-fisheye Image Rendering Math Theory

✅ Real-time rendering of dual-fisheye images and videos(support immersive view panorama)

❌ Dual-fisheye image stitching and optimization using PSO

✅ Arc and Spherical Intersection visualization for Simulation

❌ Rendering Color blending experiments for seamless transitions

Dependencies

  • MATLAB R2024b or later
  • Image Processing Toolbox™
  • Computer Vision Toolbox™
  • Global Optimization Toolbox™

Quick Start

  1. Clone this repository

  2. Add project root directory to MATLAB path

  3. Run example scripts:

    % For image rendering
    Example_DualFisheye_Image_Rendering
    
    % For video rendering
    Example_DualFisheye_Video_Rendering
    
    % For Rendering theory
    Example_Rendering_of_DualFisheye_Theory.mlx

Visualization Examples

Arc Intersection Animation

arc.mp4

Spherical Intersection Animation

sphere.mp4

Immersive View Panorama

demo.mp4

Core Rendering Functions

  • prepareRenderAxes.m: Prepares rendering axes for dual-fisheye image
  • cropFisheyeImage.m: Crops and pads fisheye image
  • renderSphere.m: Renders final spherical projection
  • panorama360ImageViewer.m: Interactive panorama viewer for mouse-driven panning and zooming

References

[1] https://github.com/cuixing158/DualFisheyeSimulation

[2] panorama360

[3] 360°全景球内外图像顺滑过渡算法

[4] https://www.mathworks.com/help/matlab/creating_plots/changing-transparency-of-images-patches-or-surfaces.html

[5] https://www.mathworks.com/help/matlab/ref/matlab.graphics.primitive.surface-properties.html

About

Direct Rendering of Dual-Fisheye Image Onto a Spherical Surface, 360-VR for immersive view.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages