GithubHelp home page GithubHelp logo

live-keys / livekeys Goto Github PK

View Code? Open in Web Editor NEW
561.0 44.0 85.0 27.29 MB

Livekeys - Automation Platform with support for live scripting.

Home Page: https://livekeys.io

QMake 1.67% QML 24.52% C++ 71.77% C 0.40% JavaScript 0.57% HTML 0.04% CMake 0.12% Jupyter Notebook 0.91%
pipelines video-processing image-processing live-coding

livekeys's Introduction

Livekeys


Join the chat at https://gitter.im/live-keys/livekeys Build Status Build status

Livekeys is a platform that automates content creation in real time by combining visual scripting with live coding. Components are used to create pipelines for familiarized tasks (file reading, video editing, computer vision modules, etc), providing configuration via their user interfaces. To extend this pipeline, users can build their own components via live coding. Main features include:

  • Image and Video Processing: Load image/video files and applying various filters

  • Node Editor : Connect and configure components via nodes in a graph

  • Timeline Editor: Schedule animations and organize video segments

  • Code editor: Syntax highlighting, code completion, live coding, and seamless switching between UI configuration and code

  • Interactive learning module: Provides tutorials with interactions that guide you through the process of learning Livekeys.

  • Plugin support: Components are wrapped in plugins, then packages, which are installable through a package manager.

Installation and getting started

To get started, simply download the application from Livekeys's website, extract the archive, and you're ready to go. Step by step instructions are also found in the download section.

Compiling

To compile Livekeys, you need to have Qt and Open CV installed. You can then use qmake to generate the makefile, and run make or nmake to build:

cd <livekeys_path>/build
qmake -r ..
make (or nmake)

The executable and plugins will be found in the bin directory.

Contributing

There's an organization on github created for Livekeys plugins and projects, so anyone looking to contribute is always welcome. This section offers a quick overview on contributing, and there are simple quickstart issues available for anyone looking to start. Most of them deal with wrapping an Open CV functions and adding a sample. There are issues marked with easy which are similar, but may have a few more displayable parameters or require a bit more processing.

There's a chat room available on gitter and also a forum.

Changes

For changes and compatibility information between versions, see the CHANGELOG.

Roadmap

Livekeys's goal is to provide an environment where people can experiment with different libraries or algorithms and can also share their own as easily as possible. To do this, it needs to be scalable, plugin-based, have a simple and easy to use build system, and a place to access and share plugins. Our goal is to reach this in version 2.0 of the application.

  • Version 1.10 - MultiThreading Module
    • Async execution
  • Version 2.0 - Package Manager Details
    • Plugin and sample showroom on Live Keys's website
    • Support for fetching plugins and samples from within the application

livekeys's People

Contributors

adenilson avatar black-vault avatar dinusv avatar eadral avatar gitter-badger avatar nenad-popovic-91 avatar tvdstaaij avatar zivanovicluka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

livekeys's Issues

[lcvimgproc] Add histogram view for images.

RGB, HSV, Greyscale histogram.

ColorHistogram{
    type : RGB/HSV //default : RGB
    image: input image
    fill : true / false // histogram draw type, default : false
    channel : 0 // optional, default -1
}

Iterate each channel or selected channel from the image and calculate histogram. Display all channels overlapped if no channel is selected.

Define command line arguments interface.

To not clutter the main script section, I would create a CommandLineArguments object, then use it as:

Arguments.qml

CommandLineArguments{
    CommandLineOption{
        key : ['r', 'read']
        type : 'required'
        description/help: 'Input file.'
    }
}

main.qml

Script{
    args: Arguments{}
}

Add preview mode.

Preview mode allows Live CV to open files without the editor. (Suggested command line argument flag '--preview')

provide the calling graph of the processing in the log window

It would be very useful if I tested the processing procedure and it works, now i want to add the processing procedure (API calls) to my application source code, i can just open the log window, copy and paste to my source code editor, followed by minor modifications to fit into the code context.
that will save a lot of time for developing.

i would also suggest to include both python and/or c++ calls

Compile files in a separate thread.

On scripts that require heavy computation, the GUI blocks for writing.

Need to switch from main.qml:

newItem = Qt.createQmlObject(
                                    "import QtQuick 2.3\n" + tester.program,
                                    tester,
                                    codeDocument.file.toString() !== '' ? codeDocument.file : 'untitled.qml');

With a separate implementation, info found at Qts sources, in Qt/Src/qtquick1/src/declarative/qml/qdeclarativeengine.cpp

Add comand line argument parsing.

This requires a custom parser to be implemented, since the scripts need access to command line arguments as well:

livecv.exe [--option value --option2 value] script.qml [args]

[lcvphoto] Add Levels{}

Set global levels, and on a per channel basis:

Levels{
    white : 253 // from 0 to image max color, default : imageMaxColor
    black : 20 // from 0 to image max color, default : 0
    contrast : 155 // from 0 to image max color, default imageMaxColor / 2
    channel : { 0: [0, 255, 124], 1: [0, 255, 124]}
}

Add file tree-view for project root.

A Live CV project will be a directory containing one or more qml files. Project directories can be opened, and specific files can be set as the startup files.

We need a file-tree view in the GUI. A toggle on/off option. A 'set as startup' option. And an "Open Project" button.

[lcvcontrols] Add MultiSlider{}

A multi slider lets you have an unlimited number of slideable elements in the same box. When a user
double clicks, a new slidable element is added. The dynamic property disables adding of new slider elements.

MultiSlider{
    id : ds
    elements : [0, 100, 255] // number of elements and their position
    dynamic : false // default: true
}

Define main script interface.

The main script interface defines the main project file. Currently, it's function would be to configure command line arguments and set up the version:

Main{
    args : [ 
        {key: ['r', 'read'], type: required, describe: 'input file'},
        {key: ['w', 'write'], type: required, describe: 'output file'}
    ]
}

Suggested names : Main, CVMain, MainScript, Script

Add compile signals. [Requires #22]

Compile started and compile ended signals from the engine should be available for the application in order to start specific behaviors during each one.

Add state samples.

Add support for LK Optical flow tracker and MOG2 background extractor.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.