panorama with MatLab

notion image
notion image
notion image

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.

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.