{ "info": { "author": "George Gach", "author_email": "george@gach.space", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "

\nflowiz\n

\n\n

\"Codacy\n\"PyPI\n\"PyPI\"\n\"PyPI\n

\n

\n\"Launch

\n

\n\n

\n\nConverts Optical Flow `.flo` files to images `.png` and optionally compiles them to a video `.mp4` via ffmpeg\n\n- [Installation](#installation)\n- [Usage](#usage)\n - [Command line usage](#command-line-usage)\n - [Python usage](#python-usage)\n - [GUI usage](#gui-usage)\n - [Help](#help)\n- [Acknowledgements](#acknowledgements)\n- [FAQ](#faq)\n- [To-Do](#to-do)\n\n## Installation\n\nGrab the latest package from PyPI repo\n\n```bash\npip install flowiz -U\n```\n\nor grab it straight from Github\n\n```bash\npip install git+https://github.com/georgegach/flowiz/\n```\n\nor clone the repo and install using `setup.py`\n\n```bash\ngit clone https://github.com/georgegach/flowiz.git\ncd flowiz\npython setup.py install --user\n```\n\nMake sure you have following packages installed\n\n```bash\npip install numpy tqdm pillow eel\napt install ffmpeg\n```\n\n## Usage\n\nPackage can be used both from the command line and python script.\n\n### Command line usage\n\nThe following script grabs `.flo` files from `./demo/flo/` directory and converts into `.png` saving in the same directory\n\n```bash\npython -m flowiz demo/flo/*.flo\n```\n\nYou can pass output directory for `.png` images via `-o` or `--outdir` parameter\n\n```bash\npython -m flowiz demo/flo/*.flo --outdir demo/png/\n```\n\nYou 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)\n\n```bash\npython -m flowiz demo/flo/*.flo -o demo/png --videodir demo/mp4\n```\n\nPass `-r` or `--framerate` parameter to control the framerate of compiled video\n\n```bash\npython -m flowiz demo/flo/*.flo -o demo/png -v demo/mp4 --framerate 2\n```\n\n### Python usage\n\nRelevant python code is available in `demo/test.ipynb` notebook. Here's an excerpt:\n\n```python\nimport flowiz as fz\n\nfiles = glob.glob('demo/flo/*.flo')\nimg = fz.convert_from_file(files[0])\nplt.imshow(img)\n```\n\n![Image](https://raw.githubusercontent.com/georgegach/flowiz/master/demo/png/frame_0001.flo.png)\n\nIn case you need to visualize `U V` channels separately from your numpy `floArray`:\n\n```python\nuv = fz.convert_from_flow(floArray, mode='UV')\naxarr[0].imshow(uv[...,0], cmap=plt.get_cmap('binary'))\naxarr[1].imshow(uv[...,1], cmap=plt.get_cmap('binary'))\n```\n\n![Image](https://raw.githubusercontent.com/georgegach/flowiz/master/demo/githubassets/uv_flows.png)\n\n### GUI usage\n\nBeta version of the `flowiz` graphical user interface is now accessible via `flowiz.gui` package. It is packaged using [ChrisKnott / Eel](https://github.com/ChrisKnott/Eel) and available via default web browser. To run the GUI simply type:\n\n```bash\npython -m flowiz.gui\n```\n\nUpon 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. \n\nMockup of the GUI is available at [georgegach.github.io/flowiz](http://georgegach.github.io/flowiz)\n\n![Demo Video](https://raw.githubusercontent.com/georgegach/flowiz/master/demo/githubassets/flowiz.demo.gif)\n\n### Help\n\n```bash\n$ python -m flowiz -h\n\nusage: __main__.py [-h] [--outdir OUTDIR] [--videodir VIDEODIR]\n [--framerate FRAMERATE]\n input [input ...]\n\npositional arguments:\n input Input file(s). (e.g.: __ ./demo/flo/*.flo)\n\noptional arguments:\n -h, --help show this help message and exit\n --outdir OUTDIR, -o OUTDIR\n Output directory path. Default: same directory as\n [.flo] files. (e.g.: __ -o ./demo/png/)\n --videodir VIDEODIR, -v VIDEODIR\n Compiles [.mp4] video from [.png] images if parameter\n is passed. Parameter requires video output directory\n path without a filename. (e.g.: __ -v ./demo/mp4/)\n --framerate FRAMERATE, -r FRAMERATE\n Frames per second of the video. (e.g.: __ -r 2)\n```\n\n## Acknowledgements\n\nThe library is based on Midlebury's Vision Project MATLAB code: \nOriginal credits to Daniel Scharstein (C++) and Deqing Sun (MATLAB)\n\n## FAQ\n\n> Q: But what kind of name is `flowiz`? \n> A: The kind you choose when `flowkit`, `flowtools`, `flowlib`, `flowlab` are already taken.\n\n> Q: Future work? \n> 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](https://img.shields.io/github/forks/georgegach/flowiz.svg?label=fork%20it&style=social) and issue a pull request. \n\n## To-Do\n\n- [x] Ported from Matlab `flow_code`\n- [x] Project is available on PyPI \n\n- [x] GUI\n\n - [ ] Fully argparsable CLI launch support\n - [ ] File `open with` support\n - [ ] Original image overlay\n - [ ] Full file explorer\n - [ ] Flow file info\n - [ ] Basics: name, width, height, filesize\n - [ ] Histogram\n\n - [ ] Progress bar\n - [ ] Client-side `.flo` format validation (using `tag`)\n\n- [x] Library\n\n - [ ] Arrow visualizations (using `opencv` or custom compact nanomodule)\n - [ ] Standalone `rgb` and `uv:binary` image creation (removes `matplotlib` dependency)\n - [ ] Standalone `.mp4` compiler (removes `ffmpeg` dependency)\n\n- [x] CLI\n - [x] _Nothing for now_\n\n\n- [x] Miscellaneous\n - [x] Better logo\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/georgegach/flowiz", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "flowiz", "package_url": "https://pypi.org/project/flowiz/", "platform": "", "project_url": "https://pypi.org/project/flowiz/", "project_urls": { "Homepage": "https://github.com/georgegach/flowiz" }, "release_url": "https://pypi.org/project/flowiz/2.3.1/", "requires_dist": [ "numpy", "tqdm", "matplotlib", "eel" ], "requires_python": "", "summary": "Optical Flow file wizard", "version": "2.3.1" }, "last_serial": 5563838, "releases": { "1.0.3": [ { "comment_text": "", "digests": { "md5": "8d147524931f7e1de8f1f0c7021d28a9", "sha256": "5f2725544cefd7cbb0f7c80337a141ba2f4e0633cdc5f68310589e3a4172f5fc" }, "downloads": -1, "filename": "flowiz-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "8d147524931f7e1de8f1f0c7021d28a9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7258, "upload_time": "2019-07-17T19:05:12", "url": "https://files.pythonhosted.org/packages/0f/2c/b1a0cf20bd55db074eccb6512093dac3963514e0151d870e9b92518b3d95/flowiz-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "00acd1a2e3164ea8cd59418570675103", "sha256": "3a2bfc651e5879936c93558eb3951367dc0087be2d38ef0948cf207335ecb316" }, "downloads": -1, "filename": "flowiz-1.0.3.tar.gz", "has_sig": false, "md5_digest": "00acd1a2e3164ea8cd59418570675103", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5886, "upload_time": "2019-07-17T19:05:13", "url": "https://files.pythonhosted.org/packages/9d/2d/7a8341fa98b7b4ef3316f805a88904efe0859ae7407e66c35ac67fa88b1c/flowiz-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "061b8b4dd0c8571284fcd9f12bf0c966", "sha256": "3189b98a3df0c715a09b4c023ffdab5d2fbf23446aa027eb03ce9d00c7af1891" }, "downloads": -1, "filename": "flowiz-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "061b8b4dd0c8571284fcd9f12bf0c966", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7784, "upload_time": "2019-07-17T22:42:04", "url": "https://files.pythonhosted.org/packages/e4/a6/a4a98de3a958086badc950043cd70429593597e9d390e420bb624ef3a4fd/flowiz-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "593c7e683566392ba037e0f33e44d0e1", "sha256": "99a6aa25fcf34ca8d9495c2e6c793a7e2d7afdfc7815d7ba571deb11d4c5c343" }, "downloads": -1, "filename": "flowiz-1.0.4.tar.gz", "has_sig": false, "md5_digest": "593c7e683566392ba037e0f33e44d0e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6492, "upload_time": "2019-07-17T22:42:05", "url": "https://files.pythonhosted.org/packages/81/01/454fc64dfab14e2f2e62b6e0021557beea688b563cc0fab2f7393c53493c/flowiz-1.0.4.tar.gz" } ], "2.2.1b0": [ { "comment_text": "", "digests": { "md5": "4491794fdc76a34c76e64873bdf5f3e8", "sha256": "adb2bf4e8c4cb9dc9507d3c2f79b338b9376f91055bd7242de2fbcfc064e2ac0" }, "downloads": -1, "filename": "flowiz-2.2.1b0-py3-none-any.whl", "has_sig": false, "md5_digest": "4491794fdc76a34c76e64873bdf5f3e8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2483321, "upload_time": "2019-07-20T20:18:47", "url": "https://files.pythonhosted.org/packages/9c/df/1357d8a8d4f94eba4e6882edb80f9fd1263550b9e2b0c25bbc9871936c35/flowiz-2.2.1b0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f0d48c5416ba7f5b38dfb1d95bbf4718", "sha256": "00ab360cfe1fc39d7549cd9bdfee6ec19f8ac4f2565e8c7d0db0f572c493a79d" }, "downloads": -1, "filename": "flowiz-2.2.1b0.tar.gz", "has_sig": false, "md5_digest": "f0d48c5416ba7f5b38dfb1d95bbf4718", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2482435, "upload_time": "2019-07-20T20:18:50", "url": "https://files.pythonhosted.org/packages/27/3b/2d835870ffc971f5cb3706b89bf906a75f65fc3598dee8116545f27a5717/flowiz-2.2.1b0.tar.gz" } ], "2.2.2": [ { "comment_text": "", "digests": { "md5": "d5bfa9e0147e45c318844f3dff0837b8", "sha256": "fcefc750f9499e3768e5be8cd90581fff3d86a833918d439edf8c1c24d08f1e5" }, "downloads": -1, "filename": "flowiz-2.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d5bfa9e0147e45c318844f3dff0837b8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2483299, "upload_time": "2019-07-20T20:46:10", "url": "https://files.pythonhosted.org/packages/34/73/38d089b373075dc96923a2061d3fec5572425c2e3badf4f82295a5273237/flowiz-2.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a4002805cdc5dbba67c3177fa853993b", "sha256": "28f5e5ad79f988c211dcdb306416e82c764ca819e81112c024efd9a6ad26655b" }, "downloads": -1, "filename": "flowiz-2.2.2.tar.gz", "has_sig": false, "md5_digest": "a4002805cdc5dbba67c3177fa853993b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2482367, "upload_time": "2019-07-20T20:46:12", "url": "https://files.pythonhosted.org/packages/cd/ab/eef086ae1e3330c2161ee1fdd7e532b1e7f0d7e6b9dcf4019f1a1d54d08d/flowiz-2.2.2.tar.gz" } ], "2.2.4": [ { "comment_text": "", "digests": { "md5": "8b8283c18c004548eb7f913449c102b0", "sha256": "5898d304c5c25d4bb3cf959bb7d51551b1963bee8f73b79da44ec3b4371d5df4" }, "downloads": -1, "filename": "flowiz-2.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "8b8283c18c004548eb7f913449c102b0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2497561, "upload_time": "2019-07-21T15:41:33", "url": "https://files.pythonhosted.org/packages/7a/ac/7d7888d1754a0e185168bd4c9722ffda510e7afe9703d4defc8016df8828/flowiz-2.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2f9f5b748964141cae445a106c860574", "sha256": "77f70ff348cd5a402e23b4ca87bce88389d0e95dc58517654a5797c1da9db966" }, "downloads": -1, "filename": "flowiz-2.2.4.tar.gz", "has_sig": false, "md5_digest": "2f9f5b748964141cae445a106c860574", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2496358, "upload_time": "2019-07-21T15:41:35", "url": "https://files.pythonhosted.org/packages/1d/2b/2b8a7873e74a38631810701714d525be57255a11e45ffad5e159ef68827e/flowiz-2.2.4.tar.gz" } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "8e3bc0c750bd1da12eb6e1a336725759", "sha256": "0a328b03b3c98f4900befd1d7d94ab2c00da2db13c23cb4a9b4ab29b08934d4c" }, "downloads": -1, "filename": "flowiz-2.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8e3bc0c750bd1da12eb6e1a336725759", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2497572, "upload_time": "2019-07-21T16:17:41", "url": "https://files.pythonhosted.org/packages/72/c4/d021b0e48601c5d352641e38874ec17f5fa94f2e1851b3c77bcd6f36847e/flowiz-2.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "25d29f565b4f85dee335efc9a967f056", "sha256": "4055f48efaaa372aa3702d756a2010043a51010cfff7aadc5f00c5900d619275" }, "downloads": -1, "filename": "flowiz-2.3.0.tar.gz", "has_sig": false, "md5_digest": "25d29f565b4f85dee335efc9a967f056", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2496369, "upload_time": "2019-07-21T16:17:43", "url": "https://files.pythonhosted.org/packages/fb/56/6db4fd565deca4beb1e56a422f8e9e0f3ae473d89c0458dd913122b4a041/flowiz-2.3.0.tar.gz" } ], "2.3.1": [ { "comment_text": "", "digests": { "md5": "c402e50c67467ed03613ebdc39f47670", "sha256": "5fd54e8baff1ff3ff063a84bc1826309930c08c1828e74ab8082870fca032015" }, "downloads": -1, "filename": "flowiz-2.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c402e50c67467ed03613ebdc39f47670", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2497526, "upload_time": "2019-07-21T16:32:01", "url": "https://files.pythonhosted.org/packages/8c/f5/7a0edc26cffd1f8a426a8b0c61bce05296136a6c9057347f995e5e27cf13/flowiz-2.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "674b5db6873118cb40ad01b917b42a1e", "sha256": "b1457d132817796e81c91887f62b89a41f280d5a64f4732bf6fec9a5fa845a4a" }, "downloads": -1, "filename": "flowiz-2.3.1.tar.gz", "has_sig": false, "md5_digest": "674b5db6873118cb40ad01b917b42a1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2496279, "upload_time": "2019-07-21T16:32:03", "url": "https://files.pythonhosted.org/packages/b7/3a/a5cff6b460c9c09b7d84ab54ff9a110d49a820e0e2f737517d595999ff2d/flowiz-2.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c402e50c67467ed03613ebdc39f47670", "sha256": "5fd54e8baff1ff3ff063a84bc1826309930c08c1828e74ab8082870fca032015" }, "downloads": -1, "filename": "flowiz-2.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c402e50c67467ed03613ebdc39f47670", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2497526, "upload_time": "2019-07-21T16:32:01", "url": "https://files.pythonhosted.org/packages/8c/f5/7a0edc26cffd1f8a426a8b0c61bce05296136a6c9057347f995e5e27cf13/flowiz-2.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "674b5db6873118cb40ad01b917b42a1e", "sha256": "b1457d132817796e81c91887f62b89a41f280d5a64f4732bf6fec9a5fa845a4a" }, "downloads": -1, "filename": "flowiz-2.3.1.tar.gz", "has_sig": false, "md5_digest": "674b5db6873118cb40ad01b917b42a1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2496279, "upload_time": "2019-07-21T16:32:03", "url": "https://files.pythonhosted.org/packages/b7/3a/a5cff6b460c9c09b7d84ab54ff9a110d49a820e0e2f737517d595999ff2d/flowiz-2.3.1.tar.gz" } ] }