jsChenxinpeng / panorama

Image Stitching using SIFT Feature

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Panorama

Introduction

This is an image stitching program written in C++11.

Compile Dependencies:

Compile:

$ make

Config:

Various parameters are saved in src/config.cfg

Without special needs, we only have to set PANO, TRANS, CROP.

The program does some extra work to optimize the output when knowing the input pictures were taken by a camera moving in pure translation or pure rotation.

  • PANO = 1 indicates that the camera moved in pure rotation. A panorama is expected to be the output;
  • TRANS = 1 indicates that the camera moved in pure translation. Result will be better than one without this option set;
  • CROP decides whether to crop the final image to a rectangular;

Run:

$ ./main <file1> <file2> ...

The output file is out.png.

Usually, input images should not exeeds 20(files) x 1500(pixels) x 1000(pixels), since your computer may not have enough memory.

The input file names given in the command line need to be well ordered, to make sure the adjacent images can be stitched together.

Examples:

Zijing Apartment in Tsinghua University: dorm

Myselves: myself

Zijing Playground in Tsinghua University: planet

For more examples, see results.

Algorithms

I use SIFT for feature detection and RANSAC to estimate transformation.

For more details, please see readme.pdf.

About

Image Stitching using SIFT Feature