INRIA%Visual%Recognition%and%Machine%Learning%Summer%School%
Instance9level%recognition:%Practical%session%
!
Stitching!photo!mosaics!
Cordelia%Schmid%and%Josef%Sivic%(adapted%from%Andrew%Zisserman)%
!
!
The!goal!of!the!practical!session!is!to!automatically!stitch!images!acquired!by!a!
panning!camera!into!a!mosaic!as!illustrated!in!images!below.!!!
!
!
!
!
Algorithm%outline:%
1.!Choose!one!image!as!the!reference!frame.!
2.!Estimate!homography!between!each!of!the!remaining!images!and!the!
reference!image.!To!estimate!homography!between!two!images!use!the!following!
procedure:!
a.!Detect!local!features!in!each!image.!
b.!Extract!feature!descriptor!for!each!feature!point.!
c.!Match!feature!descriptors!between!two!images.!!
d.!Robustly!estimate!homography!using!RANSAC.!
3.!!!!!!Warp!each!image!into!the!reference!frame!and!composite!warped!images!
into!a!single!mosaic.!
!
!
Detailed%steps:%
!
1. Download!the!(partial)!example!Matlab!code!and!images!in!a!single!zip!file!
from:!!http://www.di.ens.fr/willow/events/cvml2010/mosaic.zip!
!
2. Open!file!mosaic.m!in!the!Matlab!text!editor.!Follow!the!instructions!below!by!
executing!the!provided!code!(also!given!in!mosaic.m).!Note!that!the!code!is!
partial!and!you!will!have!to!complete!it.!
!
3. Read!in!the!three!images!of!Keble!college!and!look!at!them!!
imargb = double(imread('keble_a.jpg'))/255;
imbrgb = double(imread('keble_b.jpg'))/255;
imcrgb = double(imread('keble_c.jpg'))/255;
...