yihui-he / Panorama
Licence: mit
Image alignment and stitching with MATLAB
Stars: ✭ 131
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
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
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
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
panorama
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 inimgs
folder. If you use your own image set, you need to set focus length and other parameters inmain.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].