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
.
360 panorama
mapping image to cylindrical coordinatewarp.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
Alpha
Pyramid
Noblend
merge.m
transformation
homography transformation.
translation transformation.( This is more robust)
computeTrans.m
matching
RANSAC
exposure matching
RANSAC.m
global adjustment
end to end adjustment(comput shift and subtract shift/n to each image)
bundle adjustment(difficult way)
create.m
getting features
use SIFT features(using VLFeat library, professor allowed)
SURF features, (SIFT is better)
getSIFTFeatures.m, getMatches.m
resize
I resize image larger than 400 pixel in width
main.m
References
A nice tutorial on panorama I find useful.