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

Uploaded Source

Built Distribution

layered_vision-0.0.1-py3-none-any.whl (17.4 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