NodeEditor:多功能节点编辑器,助力流式编程

NodeEditor:多功能节点编辑器,助力流式编程

项目地址:https://gitcode.com/gh_mirrors/node/NodeEditor

项目介绍

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 许可证,用户可以自由使用、修改和分发。同时,项目欢迎社区贡献,用户可以通过贡献代码、反馈问题等方式参与项目发展。

如何构建

前提条件

  • 需要 Anaconda 或 Miniconda。可以从 这里 获取。
  • Windows 上,需要 Inno Setup 来创建安装程序。可以从 这里 获取并安装。

构建步骤

  1. 使用以下命令创建 conda 环境:

    conda env create -f environment.yml
    

    这将创建一个名为 editor 的新 conda 环境。激活环境:

    conda activate editor
    
  2. 安装 randomname 包:

    git clone git@github.com:beyse/randomname.git
    cd randomname
    python setup.py install
    
  3. 运行打包脚本:

    • Windows 上:
      .\pack.bat
      
    • LinuxmacOS 上:
      ./pack-ubuntu.sh
      

构建完成后

你将在 dist 文件夹中看到可执行文件 ExecutionNodeEditorExecutionNodeEditor.exe,以及 assetsexecution_subsystem 文件夹。

致谢

NodeEditor 基于 pyqt-node-editor 项目,感谢 Pavel Křupala 的贡献。同时,项目中使用了修改版的 PyQJsonModel

贡献与联系

欢迎贡献代码或反馈问题。详细贡献指南请参阅 Contribution Guide。如有任何问题,欢迎联系作者:sebastian.beyer@live.com。

"Buy Me A Coffee"

NodeEditor A multi purpose node editor for flow-based programming NodeEditor 项目地址: https://gitcode.com/gh_mirrors/node/NodeEditor

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虞耀炜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值