算子参考
Vision Studio 提供 200+ 视觉算子 (Operators),按功能分为六大类。本文档列出常用算子及其参数说明。
图像采集 (Image Acquisition)
CameraCapture — 相机采集
从相机设备采集一帧图像。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
DeviceID | STRING | 是 | — | 相机设备标识 |
Timeout | DWORD | 否 | 5000 | 采集超时 (ms) |
ExposureAuto | BOOL | 否 | TRUE | 自动曝光 |
ExposureTime | REAL | 否 | 5000 | 手动曝光时间 (µs) |
GainAuto | BOOL | 否 | TRUE | 自动增益 |
Gain | REAL | 否 | 0 | 手动增益 (dB) |
TriggerMode | ENUM | 否 | Software | 触发模式 |
PixelFormat | ENUM | 否 | BGR24 | 像素格式 |
输出: Image
ImageLoad — 图像加载
从文件系统加载图像。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
Path | STRING | 是 | — | 图像文件路径 |
Format | ENUM | 否 | Auto | 输出像素格式 |
ColorMode | ENUM | 否 | Color | 彩色/灰度 |
支持格式: BMP, JPG, PNG, TIFF, PGM, PPM
输出: Image
ImageQueue — 图像队列
从缓存队列中取出最早的一帧图像。用于多帧处理场景。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
QueueName | STRING | 是 | — | 队列名称 |
PopMode | ENUM | 否 | FIFO | 弹出模式 (FIFO/LIFO) |
Timeout | DWORD | 否 | 1000 | 等待超时 (ms) |
MaxQueueSize | DWORD | 否 | 100 | 队列最大长度 |
输出: Image
图像预处理 (Image Preprocessing)
FilterGaussian — 高斯滤波
高斯平滑滤波,用于去噪。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
KernelSize | DWORD | 否 | 5 | 核大小 (奇数 3/5/7/9) |
SigmaX | REAL | 否 | 1.5 | X 方向标准差 |
SigmaY | REAL | 否 | Auto | Y 方向标准差 (=SigmaX) |
BorderType | ENUM | 否 | Reflect | 边界填充方式 |
输出: Image
FilterMedian — 中值滤波
中值滤波,有效去除椒盐噪声。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
KernelSize | DWORD | 否 | 5 | 核大小 (奇数 3/5/7) |
输出: Image
FilterBilateral — 双边滤波
保边去噪滤波,保留边缘同时平滑平坦区域。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
Diameter | DWORD | 否 | 9 | 像素邻域直径 |
SigmaColor | REAL | 否 | 75 | 颜色空间标准差 |
SigmaSpace | REAL | 否 | 75 | 坐标空间标准差 |
输出: Image
Resize — 尺寸调整
缩放图像到指定尺寸。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
Width | DWORD | 是 | — | 目标宽度 (像素) |
Height | DWORD | 是 | — | 目标高度 (像素) |
Interpolation | ENUM | 否 | Linear | 插值方式 |
KeepAspectRatio | BOOL | 否 | FALSE | 保持宽高比 |
PadColor | COLOR | 否 | Black | 填充颜色 (KeepAspectRatio=TRUE) |
插值方式: Nearest, Linear, Cubic, Lanczos4
输出: Image
CvtColor — 色彩空间转换
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
Code | ENUM | 是 | — | 转换代码 |
ChannelCount | DWORD | 否 | Auto | 输出通道数 |
常用转换代码: BGR2GRAY, BGR2HSV, BGR2RGB, BGR2YUV, GRAY2BGR
输出: Image
Threshold — 二值化
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
Threshold | REAL | 否 | 128 | 阈值 |
MaxValue | REAL | 否 | 255 | 最大值 |
Type | ENUM | 否 | Binary | 二值化类型 |
UseOtsu | BOOL | 否 | FALSE | 使用 Otsu 自动阈值 |
二值化类型: Binary, BinaryInv, Trunc, ToZero, ToZeroInv
输出: Image
ROI — 感兴趣区域提取
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
X | DWORD | 是 | — | 左上角 X |
Y | DWORD | 是 | — | 左上角 Y |
Width | DWORD | 是 | — | 区域宽度 |
Height | DWORD | 是 | — | 区域高度 |
Relative | BOOL | 否 | FALSE | 是否相对坐标 (0.0~1.0) |
输出: Image
Morphology — 形态学操作
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
Operation | ENUM | 是 | — | 操作类型 |
KernelShape | ENUM | 否 | Rect | 核形状 |
KernelSize | DWORD | 否 | 3 | 核大小 |
Iterations | DWORD | 否 | 1 | 迭代次数 |
操作类型: Erode, Dilate, Open, Close, Gradient, TopHat, BlackHat
输出: Image
EqualizeHist — 直方图均衡
增强图像对比度,适用于过暗或过亮的图像。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
ClipLimit | REAL | 否 | 2.0 | 对比度限制 (CLAHE) |
TileGridSize | DWORD | 否 | 8 | 分块大小 |
输出: Image
Enhance — 图像增强
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
Brightness | REAL | 否 | 0.0 | 亮度调整 (-100~100) |
Contrast | REAL | 否 | 1.0 | 对比度调整 (0.0~3.0) |
Sharpness | REAL | 否 | 0.0 | 锐化强度 (0.0~1.0) |
Gamma | REAL | 否 | 1.0 | Gamma 校正 (0.1~3.0) |
输出: Image
目标检测 (Object Detection)
ObjectDetect — ONNX 目标检测
使用 ONNX 模型进行目标检测。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
ModelPath | STRING | 是 | — | ONNX 模型路径 |
InputWidth | DWORD | 否 | 640 | 模型输入宽度 |
InputHeight | DWORD | 否 | 640 | 模型输入高度 |
Confidence | REAL | 否 | 0.5 | 置信度阈值 |
NMSThreshold | REAL | 否 | 0.45 | NMS 阈值 |
MaxDetections | DWORD | 否 | 256 | 最大检测数 |
LabelsPath | STRING | 否 | — | 标签文件路径 |
ExecutionProvider | ENUM | 否 | Auto | 推理后端 (CPU/CUDA/OpenCL) |
BatchSize | DWORD | 否 | 1 | Batch 大小 |
输出: DetectionResult
ObjectClassify — 图像分类
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
ModelPath | STRING | 是 | — | ONNX 模型路径 |
InputWidth | DWORD | 否 | 224 | 模型输入宽度 |
InputHeight | DWORD | 否 | 224 | 模型输入高度 |
TopK | DWORD | 否 | 5 | 输出前 K 个结果 |
ExecutionProvider | ENUM | 否 | Auto | 推理后端 |
输出: ClassifierResult
ObjectSegment — 语义分割
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
ModelPath | STRING | 是 | — | ONNX 模型路径 |
InputWidth | DWORD | 否 | 640 | 模型输入宽度 |
InputHeight | DWORD | 否 | 640 | 模型输入高度 |
OutputMask | BOOL | 否 | TRUE | 是否输出分割掩码 |
ExecutionProvider | ENUM | 否 | Auto | 推理后端 |
输出: Image (分割掩码)
AnomalyDetect — 异常检测
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
ModelPath | STRING | 是 | — | ONNX 模型路径 |
Threshold | REAL | 否 | 0.5 | 异常阈值 |
OutputHeatmap | BOOL | 否 | TRUE | 是否输出热力图 |
ExecutionProvider | ENUM | 否 | Auto | 推理后端 |
输出: AnomalyResult
图像测量 (Image Measurement)
FindCircle — 圆拟合
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
RoiX | DWORD | 否 | 0 | ROI 左上角 X |
RoiY | DWORD | 否 | 0 | ROI 左上角 Y |
RoiWidth | DWORD | 否 | 0 | ROI 宽度 (0=全图) |
RoiHeight | DWORD | 否 | 0 | ROI 高度 (0=全图) |
EdgeThreshold | REAL | 否 | 50 | 边缘检测阈值 |
MinRadius | DWORD | 否 | 10 | 最小半径 (像素) |
MaxRadius | DWORD | 否 | 1000 | 最大半径 (像素) |
MinScore | REAL | 否 | 0.5 | 最小评分 |
输出: Circle (center_x, center_y, radius, score)
FindLine — 直线拟合
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
RoiX | DWORD | 否 | 0 | ROI 左上角 X |
RoiY | DWORD | 否 | 0 | ROI 左上角 Y |
RoiWidth | DWORD | 否 | 0 | ROI 宽度 |
RoiHeight | DWORD | 否 | 0 | ROI 高度 |
EdgeThreshold | REAL | 否 | 50 | 边缘阈值 |
MinLength | DWORD | 否 | 50 | 最小线段长度 |
MaxGap | DWORD | 否 | 10 | 最大间隙 |
SortBy | ENUM | 否 | Score | 排序方式 |
输出: Line (x1, y1, x2, y2, angle, score)
MeasureDistance — 距离测量
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
Point1X | REAL | 是 | — | 点 1 X |
Point1Y | REAL | 是 | — | 点 1 Y |
Point2X | REAL | 是 | — | 点 2 X |
Point2Y | REAL | 是 | — | 点 2 Y |
Unit | ENUM | 否 | Pixel | 单位 (Pixel/mm) |
CalibrationScale | REAL | 否 | 1.0 | 像素当量 (mm/pixel) |
输出: Measurement (value, unit)
MeasureAngle — 角度测量
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
Line1Point1X | REAL | 是 | — | 线 1 起点 X |
Line1Point1Y | REAL | 是 | — | 线 1 起点 Y |
Line1Point2X | REAL | 是 | — | 线 1 终点 X |
Line1Point2Y | REAL | 是 | — | 线 1 终点 Y |
Line2Point1X | REAL | 是 | — | 线 2 起点 X |
Line2Point1Y | REAL | 是 | — | 线 2 起点 Y |
Line2Point2X | REAL | 是 | — | 线 2 终点 X |
Line2Point2Y | REAL | 是 | — | 线 2 终点 Y |
输出: Measurement (value=角度, unit="deg")
FindContour — 轮廓查找
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
Mode | ENUM | 否 | External | 轮廓检索模式 |
Method | ENUM | 否 | Simple | 轮廓近似方法 |
MinArea | REAL | 否 | 100 | 最小面积过滤 |
MaxArea | REAL | 否 | 100000 | 最大面积过滤 |
输出: Contour[]
识别 (Recognition)
DecodeBarcode — 条码识别
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
RoiX | DWORD | 否 | 0 | ROI X |
RoiY | DWORD | 否 | 0 | ROI Y |
RoiWidth | DWORD | 否 | 0 | ROI 宽度 |
RoiHeight | DWORD | 否 | 0 | ROI 高度 |
Symbology | ENUM | 否 | Auto | 条码类型 |
Timeout | DWORD | 否 | 2000 | 识别超时 (ms) |
TryHarder | BOOL | 否 | FALSE | 增强识别 (降低速度) |
支持条码类型: Code128, Code39, EAN13, EAN8, UPC-A, UPC-E, ITF, Codabar, Code93, PDF417, DataBar
输出: DecodeResult (content, format)
DecodeQR — QR 码识别
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
RoiX | DWORD | 否 | 0 | ROI X |
RoiY | DWORD | 否 | 0 | ROI Y |
RoiWidth | DWORD | 否 | 0 | ROI 宽度 |
RoiHeight | DWORD | 否 | 0 | ROI 高度 |
Timeout | DWORD | 否 | 2000 | 识别超时 |
MicroQR | BOOL | 否 | FALSE | 支持 Micro QR 码 |
输出: DecodeResult
DecodeDataMatrix — DataMatrix 识别
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
RoiX | DWORD | 否 | 0 | ROI X |
RoiY | DWORD | 否 | 0 | ROI Y |
RoiWidth | DWORD | 否 | 0 | ROI 宽度 |
RoiHeight | DWORD | 否 | 0 | ROI 高度 |
Timeout | DWORD | 否 | 2000 | 识别超时 |
RectOnly | BOOL | 否 | FALSE | 仅识别矩形 DM 码 |
输出: DecodeResult
OCR — 文字识别
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
RoiX | DWORD | 否 | 0 | ROI X |
RoiY | DWORD | 否 | 0 | ROI Y |
RoiWidth | DWORD | 否 | 0 | ROI 宽度 |
RoiHeight | DWORD | 否 | 0 | ROI 高度 |
Language | STRING | 否 | "eng" | 识别语言 |
CharWhitelist | STRING | 否 | "" | 白名单字符 (留空=全部) |
PsmMode | ENUM | 否 | Auto | 页面分割模式 |
Timeout | DWORD | 否 | 3000 | 识别超时 |
输出: OCRResult (text, confidence, chars[])
模板匹配 (Template Matching)
MatchTemplate — 模板匹配
基于归一化互相关的模板匹配。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
TemplatePath | STRING | 是 | — | 模板图像路径 |
Method | ENUM | 否 | Normed | 匹配方法 |
MinScore | REAL | 否 | 0.7 | 最低匹配评分 |
MaxMatches | DWORD | 否 | 1 | 最大匹配数 |
SearchRoi | RECT | 否 | 全图 | 搜索区域 |
匹配方法: Normed, NormedSqDiff, CCoeffNormed
输出: MatchResult[] (score, x, y, angle)
MatchShape — 形状匹配
基于轮廓的形状匹配,不受光照变化影响。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
ContourTemplate | STRING | 是 | — | 形状模板 (轮廓文件) |
MinScore | REAL | 否 | 0.6 | 最低匹配评分 |
ScaleMin | REAL | 否 | 0.8 | 最小缩放比例 |
ScaleMax | REAL | 否 | 1.2 | 最大缩放比例 |
AngleRange | REAL | 否 | 360 | 搜索角度范围 (度) |
输出: MatchResult[]
输出 (Output)
WriteResult — 结果输出
将视觉结果写入 PLC 变量。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
ResultSource | ENUM | 是 | — | 结果源 (Detection/Measurement/Decode) |
VariablePrefix | STRING | 否 | "VIS_RESULT" | PLC 变量名前缀 |
MaxObjects | DWORD | 否 | 10 | 最大输出目标数 |
WriteImage | BOOL | 否 | FALSE | 是否输出图像信息 |
ClearOnFault | BOOL | 否 | TRUE | 故障时清零输出 |
DataSend — 数据通信
通过协议发送结果到外部系统。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
Protocol | ENUM | 是 | — | 协议 (HSL/OPC UA/MQTT) |
Endpoint | STRING | 是 | — | 目标地址 |
DataFormat | ENUM | 否 | JSON | 数据格式 |
IncludeImage | BOOL | 否 | FALSE | 是否包含图像 |
SaveImage — 图像保存
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
Path | STRING | 是 | — | 保存目录 |
FileNamePattern | STRING | 否 | "{timestamp}_{index}.jpg" | 文件名模板 |
Format | ENUM | 否 | JPEG | 图像格式 |
Quality | DWORD | 否 | 95 | JPEG 质量 (0~100) |
Annotate | BOOL | 否 | TRUE | 是否绘制检测框 |
MaxFiles | DWORD | 否 | 10000 | 最大文件数 (超出自动清理) |
LogRecord — 日志记录
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
Level | ENUM | 是 | — | 日志级别 |
Message | STRING | 是 | — | 日志内容 |
IncludeResult | BOOL | 否 | TRUE | 是否包含检测结果摘要 |
OutputTarget | ENUM | 否 | Both | 输出目标 (File/Console/Both) |
算子状态码
| 状态码 | 常量 | 说明 |
|---|---|---|
| 0 | VIS_OK | 成功 |
| 1 | VIS_ERR_CAMERA | 相机错误 |
| 2 | VIS_ERR_MODEL | 模型错误 |
| 3 | VIS_ERR_INFERENCE | 推理错误 |
| 4 | VIS_ERR_TIMEOUT | 超时 |
| 5 | VIS_ERR_MEMORY | 内存不足 |
| 6 | VIS_ERR_FILE | 文件错误 |
| 7 | VIS_ERR_PARAM | 参数错误 |
| 8 | VIS_ERR_LICENSE | 许可限制 |
| 9 | VIS_ERR_INTERNAL | 内部错误 |