All Projects → yihui-he → Panorama

yihui-he / Panorama

Licence: mit
Image alignment and stitching with MATLAB

Programming Languages

matlab
3953 projects

Labels

Projects that are alternatives of or similar to Panorama

defish
Algorithmic correction of fisheye lens distortion
Stars: ✭ 56 (-57.25%)
Mutual labels:  panorama
Ctpanoramaview
A library that displays spherical or cylindrical panoramas with touch or motion based controls.
Stars: ✭ 951 (+625.95%)
Mutual labels:  panorama
Panoramic Image Stitching Using Invariant Features
Given a number of input images, concatenate all images to produce a panoramic image using invariant features.
Stars: ✭ 81 (-38.17%)
Mutual labels:  panorama
Pannellum
Pannellum is a lightweight, free, and open source panorama viewer for the web. Built using HTML5, CSS3, JavaScript, and WebGL, it is plug-in free. It can be deployed easily as a single file, just 21kB gzipped, and then embedded into pages as an <iframe>. A configuration utility is included to generate the required code for embedding. An API is included for more advanced integrations.
Stars: ✭ 3,286 (+2408.4%)
Mutual labels:  panorama
Pano360
Pure Java library to play 360 degree panorama video / photo (VR video) on Android. Using OpenGL ES 2.0 -安卓全景视频/图片播放器
Stars: ✭ 535 (+308.4%)
Mutual labels:  panorama
Pano.gl
Equirectangular video/image viewer based on WebGL.
Stars: ✭ 42 (-67.94%)
Mutual labels:  panorama
panorama
photo panorama converter
Stars: ✭ 52 (-60.31%)
Mutual labels:  panorama
Real Time Video Mosaic
An implementation of automatic panorama using OpenCV in C++ and Python
Stars: ✭ 114 (-12.98%)
Mutual labels:  panorama
Computer Vision
Computer vision exercise with Python and OpenCV.
Stars: ✭ 17 (-87.02%)
Mutual labels:  panorama
React Native Streetview
React Native Google's Panorama/StreetView component for iOS and Android.
Stars: ✭ 79 (-39.69%)
Mutual labels:  panorama
Metalscope
Metal-backed 360° panorama view for iOS
Stars: ✭ 293 (+123.66%)
Mutual labels:  panorama
Python Multiple Image Stitching
Implementation of multiple image stitching
Stars: ✭ 360 (+174.81%)
Mutual labels:  panorama
Pannellum React
React Component for Pannellum (open source panorama viewer for the web)
Stars: ✭ 48 (-63.36%)
Mutual labels:  panorama
Openvslam
OpenVSLAM: A Versatile Visual SLAM Framework
Stars: ✭ 2,945 (+2148.09%)
Mutual labels:  panorama
Openpano
Automatic Panorama Stitching From Scratch
Stars: ✭ 1,284 (+880.15%)
Mutual labels:  panorama
pipano-sdk-ios
A Panorama SDK for iOS
Stars: ✭ 20 (-84.73%)
Mutual labels:  panorama
Eog panorama
Panorama viewer plugin for the 'Eye of Gnome' image viewer
Stars: ✭ 30 (-77.1%)
Mutual labels:  panorama
Panoramagl
PanoramaGL 全景展示(Xcode7~), fixed some issues,share to someone need it,support arm64
Stars: ✭ 127 (-3.05%)
Mutual labels:  panorama
Imagestitching
Conducts image stitching upon an input video to generate a panorama in 3D
Stars: ✭ 98 (-25.19%)
Mutual labels:  panorama
Iv Panorama
720° panorama player
Stars: ✭ 65 (-50.38%)
Mutual labels:  panorama

panorama

img
img
img

features

  • able to handle 360 panorama.
  • Random sequence of images input is welcomed.
  • use color blending and smoothing to make the image more continuous.

how to run

Prerequisite: matlab 2014b or higher
images sets are already in ./imgs

  • If you want to see results directly, go to ./results folder
  • If you want to test all images sets with only one click,run RunAllDatasets.m.(10 image sets, about 1 minute)
  • If you want to specify the image folder, run main.m with path to images folder as argument as follow:
    main('./imgs/redrock');
    Note that, this currently support image sets in imgs folder. If you use your own image set, you need to set focus length and other parameters in main.m.

######details of my algorithms are shown below:

360 panorama

  • [x] mapping image to cylindrical coordinate
    warp.m

recognize panorama(random inputs)

I select two random sequence images set:family_house, and west_campus1
They are already shuffled. You can see them in imgs folder.
Or you can run shuffle.bash to shuffle them again.
As described in Brown's paper, I use $N_inlier>k*N_pairs+b$ to compute whether a pair of images match or not
k,b are const. Set to 5.9 and 0.22 respectively.
See recognizing panorama for details

imorder.m

merging and blending

  • [x] Alpha
  • [ ] Pyramid
  • [x] Noblend

merge.m

transformation

  • [x] homography transformation.
  • [x] translation transformation.( This is more robust)

computeTrans.m

matching

  • [x] RANSAC
  • [ ] exposure matching

RANSAC.m

global adjustment

  • [x] end to end adjustment(comput shift and subtract shift/n to each image)
  • [ ] bundle adjustment(difficult way)

create.m

getting features

  • [x] use SIFT features(using VLFeat library, professor allowed)
  • [x] SURF features, (SIFT is better)

getSIFTFeatures.m, getMatches.m

resize

  • [x] I resize image larger than 400 pixel in width

main.m

References

A nice tutorial on panorama I find useful.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].