Optical Flow file wizard
Project description
Converts Optical Flow .flo
files to images .png
and optionally compiles them to a video .mp4
via ffmpeg
Installation
PyPI
Easiest option to install flowiz
is to grab the latest package from PyPI repo
pip install flowiz -U
pip + Github
Alternatively you may install the package directly from github repo
pip install git+https://github.com/georgegach/flowiz/
Build yourself
Or you can run setup.py
to build it yourself locally
git clone https://github.com/georgegach/flowiz.git
cd flowiz
python setup.py install --user
Make sure you have requirements installed along with an ffmpeg
to compile a video. requirements.txt
contains latest working versions of this package. Feel free to use pip-upgrader
.
pip install -r requirements.txt
apt install ffmpeg
# pacman -S ffmpeg
Usage
Package can be used both from the command line and python script.
Command line usage
The following script grabs .flo
files from ./demo/flo/
directory and converts into .png
saving in the same directory
python -m flowiz demo/flo/*.flo
You can pass output directory for .png
images via -o
or --outdir
parameter
python -m flowiz demo/flo/*.flo --outdir demo/png/
You may compile converted .png
images into a 24 fps .mp4
clip by passing -v
or --videodir
parameter with a video output directory (without a filename)
python -m flowiz demo/flo/*.flo -o demo/png --videodir demo/mp4
Pass -r
or --framerate
parameter to control the framerate of compiled video
python -m flowiz demo/flo/*.flo -o demo/png -v demo/mp4 --framerate 2
Python usage
Relevant python code is available in demo/test.ipynb
notebook. Here's an excerpt:
import flowiz as fz
files = glob.glob('demo/flo/*.flo')
img = fz.convert_from_file(files[0])
plt.imshow(img)
In case you need to visualize U V
channels separately from your numpy floArray
:
uv = fz.convert_from_flow(floArray, mode='UV')
axarr[0].imshow(uv[...,0], cmap=plt.get_cmap('binary'))
axarr[1].imshow(uv[...,1], cmap=plt.get_cmap('binary'))
GUI usage
Beta version of the flowiz
graphical user interface is now accessible via flowiz.gui
package. It is packaged using ChrisKnott / Eel and available via default web browser. To run the GUI simply type:
python -m flowiz.gui
Upon launching the web app, drag and drop or choose .flo
file(s) using the open file dialog
. Files will be converted using the python backend and placed in a temporary directory flowiz/gui/web/guitemp
. Upon every session temporary directory will be emptied to avoid unnecessary polution.
Mockup of the GUI is available at georgegach.github.io/flowiz
Help
$ python -m flowiz -h
usage: __main__.py [-h] [--outdir OUTDIR] [--videodir VIDEODIR]
[--framerate FRAMERATE]
input [input ...]
positional arguments:
input Input file(s). (e.g.: __ ./demo/flo/*.flo)
optional arguments:
-h, --help show this help message and exit
--outdir OUTDIR, -o OUTDIR
Output directory path. Default: same directory as
[.flo] files. (e.g.: __ -o ./demo/png/)
--videodir VIDEODIR, -v VIDEODIR
Compiles [.mp4] video from [.png] images if parameter
is passed. Parameter requires video output directory
path without a filename. (e.g.: __ -v ./demo/mp4/)
--framerate FRAMERATE, -r FRAMERATE
Frames per second of the video. (e.g.: __ -r 2)
Acknowledgements
The library is based on Midlebury's Vision Project MATLAB code: http://vision.middlebury.edu/flow/ Original credits to Daniel Scharstein (C++) and Deqing Sun (MATLAB)
FAQ
Q: But what kind of name is
flowiz
?
A: The kind you choose whenflowkit
,flowtools
,flowlib
,flowlab
are already taken.
Q: Future work?
A: Some of theTo-Do
features are listed below with no determined timeline. If you'd like to contribute with the said features or something completely new, you may and issue a pull request.
To-Do
- Ported from Matlab
flow_code
- Project is available on PyPI
- GUI
- Improve Front to Back-end throughput performance
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file flowiz-2.4.0.tar.gz
.
File metadata
- Download URL: flowiz-2.4.0.tar.gz
- Upload date:
- Size: 2.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb77951b256f476456c328ae94ec6043cb8f96efdc2d2ee97558c9fd9afd588a |
|
MD5 | 7d6920423bbfe6afecee97d8509c1ed3 |
|
BLAKE2b-256 | bcd808eee0ba63390006c0e98dec6dac84e4da08598a63830cc118455dc4f1f3 |
File details
Details for the file flowiz-2.4.0-py3-none-any.whl
.
File metadata
- Download URL: flowiz-2.4.0-py3-none-any.whl
- Upload date:
- Size: 2.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e6e8d862ac8e2433950d0cdb38a2d1ee00abfbe83dc7eca2ce41fdc2dd2f843 |
|
MD5 | a5ea899abd3ba1b36495740d2f3eabab |
|
BLAKE2b-256 | a8f5846fb53f9f8c8586279033d1b83bebb65b2523a835394ef0ddedb8029728 |