# fisheyeStitcher
**Repository Path**: yuny_orbbec/fisheyeStitcher
## Basic Information
- **Project Name**: fisheyeStitcher
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-12-02
- **Last Updated**: 2024-12-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# fisheyeStitcher
Stitch images generated by dual-fisheye cameras. Model supported: Samsung Gear360-C200 (195-degree FOV).
[

](https://youtu.be/GtZF6EKe50U)
## Update
[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.
## Installation
The code is built and tested in Ubuntu 16.04 and Ubuntu 18.04.
### Pre-requisite
* 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.
### Build
* 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].
## Performance
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](https://youtu.be/GtZF6EKe50U). `(*)` recorded when CPU performance is set to [75%](https://github.com/drNoob13/batteryimprove).
----------------------------------------------------------------------
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.