NodeEditor:多功能节点编辑器,助力流式编程
项目地址:https://gitcode.com/gh_mirrors/node/NodeEditor
项目介绍
NodeEditor 是一款多功能节点编辑器,专为流式编程设计。通过连接功能模块并参数化它们,用户可以构建一个可执行的图结构。该编辑器不仅支持图像处理,还允许用户自定义节点类型,满足多样化的需求。
项目技术分析
执行子系统
NodeEditor 的核心在于其执行子系统,该系统负责运行用户构建的图结构。用户可以选择使用项目自带的执行子系统,也可以根据需要替换为自己的系统,只需确保其能够解析 NodeEditor 的输出格式即可。
节点类型定义
目前,NodeEditor 主要支持图像处理节点,但用户可以通过添加 JSON 文件来自定义节点类型。这些文件位于 apps\execution_node_editor\execution_subsystem\node_type_definitions
目录下。例如,以下是一个高斯模糊节点的定义:
{
"node_type": "GaussianBlurNode",
"input_ports": [
{
"port_name": "image",
"data_type": "image_t"
}
],
"output_ports": [
{
"port_name": "blurred",
"data_type": "image_t"
}
],
"default_settings":
{
"sigma": 1.0
}
}
输出格式
NodeEditor 生成两种文件:
.nes
文件:保存整个场景,包括节点、边、节点设置、视口设置和用户界面设置,可用于重新加载编辑器。.graph.json
文件:仅保存节点、边和节点设置,用于执行子系统和运行图结构。
项目及技术应用场景
NodeEditor 适用于多种场景,特别是在需要构建和执行复杂图结构的应用中。例如:
- 图像处理:通过连接不同的图像处理节点,用户可以构建复杂的图像处理流程。
- 数据流编程:在数据流编程中,NodeEditor 可以帮助用户构建和调试数据处理流程。
- 自定义应用:用户可以根据需求自定义节点类型,扩展编辑器的功能,适用于各种定制化应用。
项目特点
- 灵活性:支持自定义节点类型,用户可以根据需求扩展编辑器的功能。
- 可替换的执行子系统:用户可以选择使用自带的执行子系统,也可以替换为自己的系统,增强了项目的灵活性和可扩展性。
- 多平台支持:支持 Windows、Linux 和 macOS 平台,用户可以在不同环境中使用。
- 开源与社区支持:项目采用 MIT 许可证,用户可以自由使用、修改和分发。同时,项目欢迎社区贡献,用户可以通过贡献代码、反馈问题等方式参与项目发展。
如何构建
前提条件
构建步骤
-
使用以下命令创建 conda 环境:
conda env create -f environment.yml
这将创建一个名为
editor
的新 conda 环境。激活环境:conda activate editor
-
安装
randomname
包:git clone git@github.com:beyse/randomname.git cd randomname python setup.py install
-
运行打包脚本:
- 在 Windows 上:
.\pack.bat
- 在 Linux 或 macOS 上:
./pack-ubuntu.sh
- 在 Windows 上:
构建完成后
你将在 dist
文件夹中看到可执行文件 ExecutionNodeEditor
或 ExecutionNodeEditor.exe
,以及 assets
和 execution_subsystem
文件夹。
致谢
NodeEditor 基于 pyqt-node-editor
项目,感谢 Pavel Křupala 的贡献。同时,项目中使用了修改版的 PyQJsonModel。
贡献与联系
欢迎贡献代码或反馈问题。详细贡献指南请参阅 Contribution Guide。如有任何问题,欢迎联系作者:sebastian.beyer@live.com。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考