基于链的框架,用于将图像处理拆分为组件。
项目描述
简历2工作室
cv2studio是一个 OpenCV 框架,使您能够将处理流程分解为组件。
特征
- 基于组件的开发
- 渠道独立
- OpenCV 的 HighGUI 元素的类包装器
- 组件的通道独立性
入门
这个框架背后的主要原则是分解。将代码拆分为一种格式的组件使其具有高度可重用性。单独开发视频/图像处理的不同部分并与他人共享变得容易。
安装
要安装最新版本:
pip install cv2studio
用法
输入
在使用框架的功能之前进行导入。
from cv2studio import App, Component
组件创建
要创建一个组件,请描述一个派生自Component. 要使用此类,需要声明方法process(self, img),其中img是要处理的图像。这个函数也必须返回一个图像。
class Blur(Component):
def process(self, img):
img = cv2.GaussianBlur(img, (5, 5), 5)
return img
该组件将模糊应用于输入图像。
应用程序创建
要创建一个包含处理组件的应用程序,请描述从“App”派生的类并使用add_component(component)方法添加组件。
class VideoApp(App):
def __init__(self, path):
App.__init__(self, path, VIDEO)
# self.add_component(MyComponent())
self.add_component(Blur())
跑步
运行描述的应用程序使用main_loop方法。它将通过应用添加的组件链开始主处理循环。
app = VideoApp('path/to/video')
app.main_loop()
main_loop开始一个视频处理循环。要创建更复杂的应用程序,请参阅以下示例。
测试
要运行测试,请运行以下命令:
pytest
版本控制
我们使用 SemVer 进行版本控制。有关可用版本,请参阅此存储库上的标签。
贡献
请阅读 CONTRIBUTE.md 了解我们的行为准则的详细信息,以及向我们提交拉取请求的流程。
执照
该项目在 MIT 许可下获得许可 - 请参阅LICENSE.md文件了解详细信息