Stitch images generated by dual-fisheye cameras. Model supported: Samsung Gear360-C200 (195-degree FOV).
[v2.1]: Update parser class. Update compiler requirement to C++17.
[v2.0]: Code restructuring.
[v1.2]: Stitch video instead of stitch frame. Drop dependency on ffmpeg.
[v1.1]: Remove dependencies on utils/mask_1920x1920_fovd_187.jpg
and utils/post_find.yml
. Use binary_mask
and blend_post
generated in the init() process instead. This is for the request to test the code with different image resolution than 3840x1920 native of Gear360-C200.
The code is built and tested in Ubuntu 16.04 and Ubuntu 18.04.
- C++17-support compiler. If your compiler doesn't fully support C++17, you can force g++7 (Linux) by adding the following line in CMakeList.txt:
if(COMPILER_SUPPORTS_CXX17)
set(CMAKE_CXX_COMPILER "/usr/bin/g++-7") # only if necessary (Ubuntu 16.04 or older)
- CMake 3.5.1.
- OpenCV 3.4.2 (with calib3d) or more recent version of OpenCV.
-
Clone the repo and go to the cloned repo.
-
Build the code
mkdir build cd build cmake .. make cd ..
-
Run the example
cd scripts ./RUN_fisheye.sh
Please be informed that the code doesn't include the temporal coherence control, but one can implement it using the description in [1].
It takes around 70ms-90ms* to stitch one 3840x1920 image (02 x fisheye images captured by Samsung Gear 360 C200) on a laptop with an Intel i7-8750H CPU + 32GB Memory. See clip. (*)
recorded when CPU performance is set to 75%.
If you find our code useful, please consider citing our following papers:
[1]
T. Ho, I. D. Schizas, K. R. Rao and M. Budagavi, "360-degree video stitching for dual-fisheye lens cameras based on rigid moving least squares," 2017 IEEE International Conference on Image Processing (ICIP), Beijing, China, Sept. 2017, pp. 51-55.
[2]
T. Ho and M. Budagavi, "Dual-fisheye lens stitching for 360-degree imaging," 2017 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), New Orleans, LA, Mar. 2017, pp. 2172-2176.