• Stars
    star
    143
  • Rank 257,007 (Top 6 %)
  • Language
    C++
  • License
    MIT License
  • Created over 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Automatically stiching several individual images to generate a panorama image. Writing from scratch in C++.

PanoramaImageStitching

Automatically stiching several individual images to generate a panorama image. Follow the routine described in the paper Automatic Panoramic Image Stitching using Invariant Features. For more details about theory and practice of panorama image stitching including algorithms, results and analysis, please read my post. Any feedback is welcomed!

Dependencies

Implement with The CImg Library and VLFeat open source library in C++ language.

Test on Visual Studio 2015, C++11. You can also compile in Linux with linuxbuild.sh.

Images should be of bmp format(much easier to convert by ImageMagick).

Usage of VLFeat

Download and unpack the latest VLFeat binary distribution (I used VLFeat 0.9.20 binary package on May 11, 2017) in a directory of your choice (e.g. F:\vlfeat-0.9.20-bin) For Mac users, read this Apple X-Code tutorial. These instructions show how to setup a basic VLFeat project with Visual Studio 2015 on Windows 10 (64 bit). Instructions for other versions of Visual Studio and Windows should be similar.

  1. Specify the value of the PATH environment variable. E.g. Add F:\vlfeat-0.9.20-bin\vlfeat-0.9.20\bin\win64 to Path, where win64 depends on your architecture.
  2. Open VS and select File > New > Project and choose General > Empty Project.
  3. Click Project > Properties to open Property Pages. Choose Configuration > All Configurations.
  4. Select Configuration Properties > C/C++ > General and add the root path of the VLFeat folder (e.g. F:\vlfeat-0.9.20-bin\vlfeat-0.9.20) to Additional Include Directories.
  5. Select Configuration Properties > Linker > General and add the bin/win32 folder (even if your architecture is win64) (e.g. F:\vlfeat-0.9.20-bin\vlfeat-0.9.20\bin\win32) to Additional Library Directories.
  6. Select Configuration Properties > Linker > Input and add vl.lib to Additional Dependencies.
  7. Copy the vl.dll file in bin/win32 folder (e.g. F:\vlfeat-0.9.20-bin\vlfeat-0.9.20\bin\win32) to your VS project's debug or release folder (e.g. C:\Users\HYPJUDY\Documents\Visual Studio 2015\Projects\PanoramaImageStitching\Debug).
  8. Build and run the project (Ctrl+F5)

Reference: Using from C and Microsoft Visual Studio tutorial.

Results

More Repositories

1

Decouple-SSAD

Decoupling Localization and Classification in Single Shot Temporal Action Detection
Python
94
star
2

A4-paper-sheet-detection-and-cropping

Document Scanner. Automatically detect paper and crop. Writing in C++ from scratch.
C
42
star
3

human-pose-estimation-by-deep-learning

A simple regression based implementation/VGG16 of pose estimation with tensorflow.
Python
38
star
4

caffe-dnnh

A caffe version implementation of a hash network(DNNH/NINH) for similarity-based visual research based on paper: Simultaneous feature learning and hash coding with deep neural networks
C++
23
star
5

digital-image-processing-hw

Homeworks(codes & reports) from SYSU's Digital Image Processing course taught by Professor Hongyang Chao.
MATLAB
20
star
6

image-morphing

Produce a "morph" animation of one image into another image.
MATLAB
15
star
7

movie-ticket-and-service-website

Project of Software System Analysis and Design by Maolin Pan, SYSU, 2017.
JavaScript
11
star
8

EightQueensAndPuzzle

Generate a large number of 8-puzzle and 8-queens instances and solve them by hill climbing (steepest-ascent and first-choice variants), hill climbing with random restart, and simulated annealing. Measure the search cost and percentage of solved problems and graph these against the optimal solution cost.
Python
8
star
9

handwritten-digits-recognition

Automatically recognize handwritten digits from photos. Handwritten digits recognition by CNN and SVM.
Python
7
star
10

color-transfer-between-images

Implementation and improvement of paper: Color Transfer between Images, Erik Reinhard et al, 2001
C
6
star
11

regression-classification-kaggle

Regression and Classification Competition in Kaggle
Python
3
star
12

histogram-equalization-on-grayscale-and-color-image

Implementation of histogram equalization on grayscale image and three methods of color image histogram equalization. Detail analyses and results are given.
C
3
star
13

ECOP-hw

Homeworks(codes & reports) from 2016 SYSU's Experiments of Computer Organization Principle course taught by Professor Chaodong He.
C
2
star