Skip to content

nit4y/mosaic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mosaic logo

mosaic

CI Go Reference Go Report Card Release License: GPL v3

Turn a panning video into a wide panoramic mosaic - the "VideoBrush" strip-mosaicing technique (Peleg et al.) implemented in Go on top of GoCV / OpenCV.

Example

Input - a panning video:

input panning video

Output - the mosaic panoramas video:

output panoramic mosaic

How it works

  1. Extract frames - decode the video, trim black borders, and detect the dominant pan direction so motion runs horizontally.
  2. Align adjacent frames - track Shi-Tomasi corners across each consecutive pair with Lucas-Kanade optical flow, then fit a RANSAC partial-affine transform reduced to horizontal translation, accumulated against a central reference frame.
  3. Warp - project every aligned frame onto a shared canvas in parallel.
  4. Stitch - sweep a column offset across the frames, painting each frame's thin strip; optional feather-blending hides the seams.

Requirements

GoCV requires OpenCV (4.x) installed locally - see the GoCV install guide.

go get github.com/nit4y/mosaic

License

GPL-3.0.

About

An implementation in Go for panoramic mosaicing with VideoBrush, invented by Shmuel Peleg and others.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors