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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | e280848b73cf1fe643f19bbd938979ea13e2aa710ccf23b6209ad5112f256097 |
|
MD5 | 3f8d1f5ed976c1c7aefa203fbcea8f13 |
|
BLAKE2b-256 | f094dd48b9332f6f537ae9c07adbe4d958794b1b1654f0ea0463c8c64aa51cb4 |