Skip to main content

Chain-based framework to split image processing into components.

Project description

cv2studio

cv2studio is an OpenCV framework that give you an ability to decompose processing flow into components.

Features

  • Component-based development
  • Channel independence
  • Classes wrappers for HighGUI elements of OpenCV
  • Channel independence for components

Getting Started

The main principle behind this framework is decomposition. Splitting up a code into one-format components make it highly reusable. It becomes easy to develop different parts of video/image processing separately and share it with others.

Installing

To install the latest release:

pip install cv2studio

Usage

Importing

Before using features of the framework goes importing.

from cv2studio import App, Component

Component creation

To create a component describe a class derived from Component. To use this class it's required to declare the method process(self, img), where img is an image to be process. This function must return an image as well.

class Blur(Component):
    def process(self, img):
        img = cv2.GaussianBlur(img, (5, 5), 5)
        return img

This component apply blur to an input image.

App creation

To create an app that will hold processing components describe a class derived from 'App' and add components using add_component(component) method.

class VideoApp(App):
    def __init__(self, path):
        App.__init__(self, path, VIDEO)
        # self.add_component(MyComponent())
        self.add_component(Blur())

Running

To run the described app use main_loop method. It will start main processing loop with applying chain of added component.

app = VideoApp('path/to/video')
app.main_loop()

main_loop starts a video processing loop. For creating more complex app see the following examples.

Testing

To run tests run the following command:

pytest

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Contributing

Please read CONTRIBUTE.md for details on our code of conduct, and the process for submitting pull requests to us.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

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

cv2studio-1.0.2.tar.gz (6.8 kB view details)

Uploaded Source

File details

Details for the file cv2studio-1.0.2.tar.gz.

File metadata

  • Download URL: cv2studio-1.0.2.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.21.0 setuptools/41.4.0 requests-toolbelt/0.8.0 tqdm/4.36.1 CPython/3.7.3

File hashes

Hashes for cv2studio-1.0.2.tar.gz
Algorithm Hash digest
SHA256 e280848b73cf1fe643f19bbd938979ea13e2aa710ccf23b6209ad5112f256097
MD5 3f8d1f5ed976c1c7aefa203fbcea8f13
BLAKE2b-256 f094dd48b9332f6f537ae9c07adbe4d958794b1b1654f0ea0463c8c64aa51cb4

See more details on using hashes here.

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