Skip to main content

Compose final output(s), out of layers of images, videos or similar.

Project description

Layered Vision

Goals of this project is:

  • A tool to allow the composition of images or videos via a configuration file (e.g. as a virtual webcam).

This project is still very much experimental and may change significantly.

Install

pip install layered-vision

Configuration

The configuration format is file is YAML.

Layers

Every configuration file will contain layers. Layers are generally described from top to down. With the last layer usually being the output layer.

The source to the output layer will be the layer above.

A very simple configuration file that downloads the numpy logo and saves it to a file might look like (example-config/save-image.yml):

layers:
- id: in
  input_path: "https://github.com/numpy/numpy/raw/master/branding/logo/logomark/numpylogoicon.png"
- id: out
  output_path: "numpy-logo.png"

You could also have two outputs (example-config/two-outputs.yml):

layers:
  - id: in
    input_path: "https://github.com/numpy/numpy/raw/master/branding/logo/logomark/numpylogoicon.png"
  - id: out1
    output_path: "data/numpy-logo1.png"
  - id: out2
    output_path: "data/numpy-logo2.png"

In that case the source layer for both out1 and out2 is in.

By using window as the output_path, the image is displayed in a window (example-config/display-image.yml):

layers:
  - id: in
    input_path: "https://github.com/numpy/numpy/raw/master/branding/logo/logomark/numpylogoicon.png"
    width: 480
    height: 300
    repeat: true
  - id: out
    output_path: window

Input Layer

A layer that has an input_path property.

The following inputs are currently supported:

  • Image
  • Video
  • Linux Webcam (/dev/videoN)

The input_path may point to a remote location (as is the case with all examples). In that case it will be downloaded and cached locally.

Filter Layer

A layer that has an filter property.

The following filters are currently supported:

name description
box_blur Blurs the image or channel.
bodypix Uses the bodypix model to mask a person.
chroma_key Uses a chroma key (colour) to add a mask
dilate Dilates the image or channel. For example to increase the alpha mask after using erode
erode Erodes the image or channel. That could be useful to remove outliers from an alpha mask.
motion_blur Adds a motion blur to the image or channel. That could be used to make an alpha mask move more slowly

Every filter may have additional properties. Please refer to the examples (or come back in the future) for more detailed information.

Branches Layer

A layer that has an branches property. Each branch is required to have a layers property. The input to each set of branch layers is the input to the branches layer. The branches are then combined (added on top of each other). To make branches useful, at least the last branch image should have an alpha mask.

CLI

CLI Help

python -m layered_vision --help

or

python -m layered_vision <sub command> --help

Example Command

python -m layered_vision start --config-file=example-config/display-image.yml

You could also load the config from a remote location:

python -m layered_vision start --config-file \
  "https://raw.githubusercontent.com/de-code/layered-vision/develop/example-config/display-video-chroma-key-replace-background.yml"

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

layered-vision-0.0.1.tar.gz (17.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

layered_vision-0.0.1-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

Details for the file layered-vision-0.0.1.tar.gz.

File metadata

  • Download URL: layered-vision-0.0.1.tar.gz
  • Upload date:
  • Size: 17.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

File hashes

Hashes for layered-vision-0.0.1.tar.gz
Algorithm Hash digest
SHA256 937d46a01d59ab241cf41f98af46920b9a235a4580de9de9ddb8efc63868daea
MD5 c252fcc65db8c15c059519cb6d64bcec
BLAKE2b-256 a9f974f3fa776014973c4eaa606a893952f342b99b749754564cf79824475e78

See more details on using hashes here.

File details

Details for the file layered_vision-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: layered_vision-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 17.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

File hashes

Hashes for layered_vision-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bf75b442b26c980037fcbf91326b6623752df9815018e8b5ccd8f3c3e92e0dcc
MD5 c8a1d94f5b276409b3aa43f0c53435cb
BLAKE2b-256 0469820ab8a887ad3cb2c67e2fbba7bec565080ea26f650fdefa42feb6352097

See more details on using hashes here.

Supported by

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