A simple python project that calculates and visualizes any kind of video's motion vectors.
Load up a video, choose the algorithm to be used (and optionally, change their parameters), and watch the magic happen. You can stop the video at any time. Playback can be stopped / resumed. You can also choose different similarity metrics (right now only MAD and SS, more can be added easily).
The tracking tab is similar. Load a video, draw a bounding box over the area you wish to track, and the program will do its job. You can stop the tracking to redraw the bounding box in case it loses track of the target, and then resume the playback.
Press ESC to quit the application. Currently, this is the only way to load a new video.
In no particular order:
- Repository initialization
- Open video from file system
- UI
- EBMA implementation
- MV on-top visualization
- Bounding box drawing
- BB-Based Motion tracking
- EBMA alternatives
- Documentation
- Final Report
Extra:
-
Anti-Jitter filter (FPS or MVI)
-
File restructure
-
Improve code readability
-
Add a method to reset the loaded video.
-
better openCV2 usage
-
FAST- won't do, already implemented in ORB
Subject to change.
- Python version used:
3.12.x
- Create a .venv virtual environment and install the requirements using pip, with the constraints:
pip install -r .\requirements.txt
- Run
source/main_window.py
and you're good to go!
- Optional step: Install the Standard K-Lite codecs: K-Lite Codecs Download
This step is only needed if you have trouble in loading or playing the video.