Skip to main content

Optical Flow file wizard

Project description

flowiz

PyPI - License PyPI PyPI - Status PyPI - Downloads

Codacy Badge

Launch Jupyter

Converts Optical Flow .flo files to images .png and optionally compiles them to a video .mp4 via ffmpeg

Installation

Grab the latest package from PyPI repo

pip install flowiz -U

or grab it straight from Github

pip install git+https://github.com/georgegach/flowiz/

or clone the repo and install using setup.py

git clone https://github.com/georgegach/flowiz.git
cd flowiz
python setup.py install --user

Make sure you have following packages installed

pip install numpy tqdm pillow
apt install 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:

from flowiz import flowiz

f = flowiz()
files = glob.glob('demo/flo/*.flo')
img = f.convertFromFile(files[0])
plt.imshow(img)

Image

In case you need to visualize U V channels separately from your numpy floArray:

uv = f.convertFromFlow(floArray, mode='UV')
axarr[0].imshow(uv[...,0], cmap=plt.get_cmap('binary'))
axarr[1].imshow(uv[...,1], cmap=plt.get_cmap('binary'))

Image

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 are already taken.

To-Do

  • Ported
  • Version 1.0 + pip
  • Standalone PNG packaging (remove pillow dependency)
  • Standalone MP4 compiler (remove ffmpeg dependency)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flowiz-1.0.4.tar.gz (6.5 kB view hashes)

Uploaded Source

Built Distribution

flowiz-1.0.4-py3-none-any.whl (7.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page