Skip to main content

flowiz

Codacy Badge PyPI - License PyPI PyPI - Downloads

Launch Jupyter

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)

Image

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'))

Image

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

Demo Video

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 when flowkit, flowtools, flowlib, flowlab are already taken.

Q: Future work?
A: Some of the To-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 fork it 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

Metadata

Release files for flowiz 2.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flowiz 2.4.0
File Size Uploaded
flowiz-2.4.0.tar.gz 2.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for flowiz 2.4.0
File Interpreter ABI Platform
flowiz-2.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 4.2 MB

Release files / flowiz-2.4.0.tar.gz

Download URL flowiz-2.4.0.tar.gz
Size 2.1 MB
Tags Source
SHA-256 checksum
How to use checksums
eb77951b256f476456c328ae94ec6043cb8f96efdc2d2ee97558c9fd9afd588a
BLAKE2b-256 checksum
How to use checksums
bcd808eee0ba63390006c0e98dec6dac84e4da08598a63830cc118455dc4f1f3
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / flowiz-2.4.0-py3-none-any.whl

Download URL flowiz-2.4.0-py3-none-any.whl
Size 2.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
5e6e8d862ac8e2433950d0cdb38a2d1ee00abfbe83dc7eca2ce41fdc2dd2f843
BLAKE2b-256 checksum
How to use checksums
a8f5846fb53f9f8c8586279033d1b83bebb65b2523a835394ef0ddedb8029728
Upload date
Uploaded using Trusted Publishing?
What is 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

Release history Release notifications | RSS feed

This release

2.4.0 This release

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.4

2 release files

2.2.2

2 release files

1.0.4

2 release files

1.0.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page