Supporting files for an OpenCV Python based live (real-time) image mosaicking lab exercise used for teaching within the undergraduate Computer Science programme at Durham University (UK) by Prof. Toby Breckon.
This is not a complete real-time mosaicking code solution but instead supporting code files to allow you to build a real-time mosaicking solution.
All tested with OpenCV 4.x and Python 3.x.
- skeleton.py - an outline file with camera/video interface and commented outline of the bits you need to complete
- mosaic_support.py - a set of documented supporting functions
Download each file as needed or to download the entire repository and run each try:
git clone https://github.com/tobybreckon/mosaic-lab.git
cd mosaic-lab
python3 ./skeleton.py [optional video file]
Runs with a webcam connected or from a command line supplied video file of a format OpenCV supports on your system (otherwise edit the script to provide your own image source) as follows.
$ python3 ./generic_interface.py -h
usage: skeleton.py [-h] [-c CAMERA_TO_USE] [-r RESCALE] [video_file]
Perform ./skeleton.py operation on incoming camera/video image
positional arguments:
video_file specify optional video file
optional arguments:
-h, --help show this help message and exit
-c CAMERA_TO_USE, --camera_to_use CAMERA_TO_USE
specify camera to use
-r RESCALE, --rescale RESCALE
rescale image by this factor
Inspired and informed by the research work undertaken in:
Real-time Construction and Visualization of Drift-Free Video Mosaics from Unconstrained Camera Motion (M. Breszcz, T.P. Breckon), In IET J. Engineering, IET, Volume 2015, No. 16, pp. 1-12, 2015 [demo] [pdf] [doi]
If referencing this example in your own work please use:
@Article{breszcz15mosaic,
author = {Breszcz, M. and Breckon, T.P.},
title = {Real-time Construction and Visualization of Drift-Free Video Mosaics from Unconstrained Camera Motion},
journal = {IET J. Engineering},
year = {2015},
volume = {2015},
number = {16},
pages = {1-12},
month = {August},
publisher = {IET},
doi = {10.1049/joe.2015.0016},
}
If you find any bugs raise an issue (or much better still submit a git pull request with a fix) - toby.breckon@durham.ac.uk
"may the source be with you" - anon.