Simple rotation model images stitcher
A basic example on image stitching.
In this demo, we show how to use the high-level stitching API provided by cv.Stitcher, and we learn how to use preconfigured stitcher configurations to stitch images using different camera models.
Sources:
Contents
Input images (two or more)
imgs = { imread(fullfile(mexopencv.root(),'test','b1.jpg')), ... imread(fullfile(mexopencv.root(),'test','b2.jpg')) }; for i=1:numel(imgs) subplot(1,numel(imgs),i), imshow(imgs{i}) end
Options
% Try to use GPU. The default value is false. % All default values are for CPU mode. try_use_gpu = false; % Determines configuration of stitcher. The default is 'Panorama' mode % suitable for creating photo panoramas. Option 'Scans' is suitable for % stitching materials under affine transformation, such as scans. smode = 'Panorama'; % Internally create three chunks of each image to increase stitching success divide_images = false;
if divide_images for i=1:numel(imgs) sz = size(imgs{i}); imgs{i} = { cv.Rect.crop(imgs{i}, [0 0 sz(2)/2 sz(1)]), ... cv.Rect.crop(imgs{i}, [sz(2)/3 0 sz(2)/2 sz(1)]), ... cv.Rect.crop(imgs{i}, [sz(2)/2 0 sz(2)/2 sz(1)]) }; end imgs = [imgs{:}]; end
Stitch
stitcher = cv.Stitcher('Mode',smode, 'TryUseGPU',try_use_gpu); tic pano = stitcher.stitch(imgs); toc
Elapsed time is 1.139193 seconds.
Panorama result
figure, imshow(pano)