跳到主要内容
版本:1.0.0

工具与算子库:总览

算子(Tool)是组成程序的最小执行单元。ToolBank 的算子来自内置插件(随安装包分发,也可在插件管理器中停用)与第三方插件。所有算子遵循同一套“输入 → 处理 → 输出”模型,输入可绑定变量或常量,输出写入变量池,供后续算子引用。

算子从哪来​

插件内容类别
基础工具(ToolBase)变量定义、数学、文件 IO、控制流Math / Variable / FileIO / ControlFlow
Plugin.CV图像处理算子Image / Region / Transformation
Plugin.DL深度学习与 OCRCustomTools
Plugin.Camera相机采集CustomTools
Plugin.Calibration相机标定 / 去畸变CustomTools
Plugin.FinanceCSV 读取、净值收益计算CustomTools
Plugin.DevOps编译与工程工具CustomTools

在程序编辑器里添加算子时,“工具选择器”按分类组织,支持关键字搜索。下表是全部内置分类:

分类典型内容
Image滤波、阈值、边缘、形态学、算术、几何变换、直方图、模板匹配(见 图像与几何算子)
Region区域生成 / 组合,与图像分析配合(Region 本质是 0/255 像素掩码)
Transformation平移 / 旋转 / 缩放等空间变换
Math四则、取整、幂、比较、统计、表达式求值
Variable定义各类型变量(见下)
FileIO读写图像、创建目录、路径判断等
ControlFlowIF / ELIF / ELSE / LOOP / BREAK / CALL / 条件表达式(Evaluate Condition)
CustomTools深度学习、OCR、相机、标定、金融、DevOps 等扩展工具

变量:算子之间的“数据交换格式”​

所有算子输入输出的数据都落在变量池里。理解变量类型,是理解算子功能的关键。

标量​

类型含义
INTEGER整数
DOUBLE浮点数
STRING字符串(路径、名称、文本)
BOOL布尔(多数算子中以 0/1 整数表达)

图像与区域​

类型含义
IMAGE图像,支持 8U / 16U / 32F 等常见位深与多通道
REGION区域掩码,像素值 0/255,与图像同尺寸——用于限定“处理哪一块”

几何图形(Shape)​

类型含义典型来自
POINT2D / POINT3D点特征点定位、相机结果
LINE2D直线(亚像素级)边缘拟合
RECTANGLE2D矩形(可带角度)目标框
CIRCLE2D圆圆环定位
ELLIPSE2D椭圆缺陷 / 焊点
POLYGON2D多边形不规则 ROI、轮廓

注意 ToolBank 的语义分层:REGION 是像素掩码(决定图像上哪里参与运算),RECTANGLE2D / CIRCLE2D 等几何类型是可以被公式、测量算子直接消费的“图形数据”。需要“在图像上画出结果”时,用叠加注记 / 用户视图来呈现。

数组(列表)​

所有类型都有数组形式,命名加 v 前缀:vDOUBLE、vIMAGE、vPOINT2D、vRECTANGLE2D、vPOLYGON2D 等。数组变量允许不同长度,且多数算子支持“一个数组输入批量处理”,例如一次检测一张大图切出的多个子区域。

自定义插件可声明更多类型,并在 插件 API 中注册。当前 22 种内置类型(11 种单值 + 对应 v 数组)以程序编辑器中“变量类型”下拉的实际选项为准。

端口模式:输入能不能留空、能不能接数组​

每个输入端口声明三种模式之一,决定了你绑定参数时的自由度:

模式含义
仅单值必须绑定一个值
单值或列表可绑一个值,也可绑一个数组(算子内部对每个元素处理)
可空不绑定也能运行(常用于可选 ROI、可选阈值)

把鼠标悬停在算子输入框上,会看到该端口的模式提示与用途说明。

文件格式约定​

后缀内容
.tbcode程序文件(Job / 算子 / 参数 / 连接)
.tblayout用户视图布局(控件位置、大小)
.tbjob插件分发的示例 / 例程文件
variables.json + blobs/工作空间序列化的变量值与图像二进制

程序 / 布局 / 变量是三个独立文件,菜单里的“导入程序 / 导出程序 / 导入布局 / 导出布局”分别操作它们。

系统变量:$(SolutionDir) 等路径宏​

部分需要文件路径的参数支持系统变量宏,运行时展开为完整路径,便于工程整体迁移(换个目录不用改每个算子里的路径):

宏展开为
$(SolutionDir)当前工作空间的根目录(含尾斜杠)

在需要路径的输入框里直接写 $(SolutionDir)images\src.png 即可。系统变量在调用内核前展开、不写入程序文件,属于“会话级动态值”;自定义的普通变量不受影响。

更多​