跳转至

卡尺工具:测量边缘距离与尺寸

在图上画一个方向明确的矩形,软件沿着它扫过去,找出两条边缘,量它们之间的距离,再和你给的参考值比。间隙宽度、贴合错位量、零件宽度、标签到边沿的距离,都可以这样量。

它和别的检测项还有一点不同:导入标定文件之后,它能把像素换算成毫米,并且这个毫米值可以设成自定义变量发给 PLC。需要把"实测尺寸"回传给上位机时,用它。

前置条件

  • 检测方案里已经建好标签外框,模板图已完成旋转拉伸。
  • 要量的两条边缘在图上看得出明暗变化。边缘糊成一片、人眼都分不清的地方量不了。
  • 想要毫米值,需要先做过标定,得到一个记录像素当量的 JSON 文件。

它包含哪些检测框

只有一个:"检测参数"。双击它打开的窗口有五个页签:

页签 管什么
"设置" 边缘极性、对比度门槛、参考距离与阈值、标定与补偿。日常调参都在这一页
"区域" 卡尺矩形的形状与坐标,可以用数字精确摆位
"计分" 边缘评分曲线与表格,用来看软件为什么挑中了这两条边
"图形" 一排显示开关,控制结果图上画什么
"结果" 找到的边缘明细表,底部还有"当前距离(px): "

卡尺"检测参数"窗口的"设置"页

新建与画框

  1. 切到"编辑模式"。
  2. 点工具栏"新建检测项",类型选"卡尺工具",确定。
  3. 在模板图上拖出卡尺矩形。方向很重要:矩形的长边方向就是扫描方向,要让它垂直穿过你要量的那两条边缘,而不是和边缘平行。
  4. 矩形宽度(垂直于扫描方向那一边)决定取多宽的一条带来平均。边缘干净就窄一点,有噪声就宽一点,让结果更稳。
  5. 点"训练工程"。
  6. 双击"检测参数",点窗口左上角的运行按钮跑一次,看"结果"页里找到了几条边。

必须正好找到两条边

卡尺固定取两条边缘算距离。找到的边不是两条(0 条、1 条、3 条以上)时直接判 NG。所以矩形要尽量只罩住这两条边,别把第三条边也框进去。

参数说明

"设置"页 —— 边缘怎么找

这一页有几个标签目前还是英文,含义如下。

参数 含义 调参建议
"双边缘模式" 整组设置的标题
"边缘1" / "边缘2" 分别设定第一条、第二条边缘的极性(明暗过渡方向),下拉三选一(由亮到暗 / 由暗到亮 / 全部) 沿扫描方向看:从暗变亮选"由暗到亮",从亮变暗选"由亮到暗",不确定就选"全部"
"由暗到亮"(Dark to Light) 暗 → 亮的过渡
"由亮到暗"(Light to Dark) 亮 → 暗的过渡
"全部"(All) 两种都接受 默认值。先用它跑通,再按实际情况收紧,收紧了更不容易挑错边
"对比度阈值"(Contrast Threshold) 边缘对比度门槛,低于它的过渡不算边缘 挑到杂边就往上调;边缘太浅找不到就往下调。配合"计分"页的曲线看最直观
"滤波半宽(像素)"(Filter Half Pixel) 平滑窗口的半宽,值越大越平滑 图像有噪点、边缘毛糙时往上调;调太大会把真实边缘抹平,位置也会变钝
"最大结果数"(Maximum Number of Results) 最多返回几条边缘 这一项固定为 2,不可修改,只读显示 2

"设置"页 —— 距离怎么判

参数 含义 调参建议
"参考距离(px)" 标准品上这两条边应该相距多少像素 别凭空填。先跑几件良品,看"结果"页底部的"当前距离(px): ",取中间值填进来
"距离阈值(px)" 允许偏离参考距离多少像素 实测距离与参考距离之差在这个范围内判 PASS,超出判 NG。先按良品的波动范围给,再收紧
"参考距离(mm)" 参考距离换算成毫米 只读。没导入标定文件时是空白
"距离阈值(mm)" 距离阈值换算成毫米 只读,同上
"结果补偿(mm)" 给毫米结果加一个固定偏移 用卡尺量出来的值和卡尺实物 / 三坐标量出来的值有系统性差值时,把差值填这里补平
"标定后结果(mm)" 本次的毫米结果,已经含补偿 只读。没跑过时显示"null"
"导入标定文件" 选一个 JSON 标定文件 文件里必须有像素当量字段,导入成功会提示换算系数是多少 mm/px

毫米值怎么算出来的

毫米结果 = 实测像素距离 × 标定系数 + "结果补偿(mm)"。没导入过标定文件时,对外输出的毫米值一律是 0;判 NG 时输出也是 0。所以要把尺寸发给 PLC,必须先导入标定文件、把这一项判到 PASS。

"区域"页

形状下拉框只有两个选项:用整幅输入图,或者用一个可旋转矩形。卡尺默认用可旋转矩形,并且在图上拖框就是改它。需要精确摆位时,在这里直接填坐标、边长和旋转角。

"计分"页 / "图形"页 / "结果"页

页签 里面有什么 怎么用
"计分" 边缘强度沿扫描方向的曲线,和对应的数值表 调"对比度阈值"时看它:曲线上有几个明显的峰,门槛应该卡在真实边缘的峰和杂峰之间
"图形" 一排显示开关,控制结果图上画不画找到的边、区域、投影曲线、滤波曲线等 调试时全打开,看清楚软件到底挑中了哪两条边
"结果" 找到的每条边的位置、分数等明细,底部是"当前距离(px): " 定"参考距离(px)"就看这里的当前距离

训练与调试

  1. 画好卡尺矩形,让长边垂直穿过两条目标边缘 → 点"训练工程"。
  2. 双击"检测参数",点运行按钮,到"结果"页确认正好找到两条边,并记下"当前距离(px): "。
  3. 换几件良品(用"打开调试文件夹"过一批实拍图),记下每件的当前距离,看波动有多大。
  4. 把中间值填进"参考距离(px)",把波动范围略放宽后填进"距离阈值(px)"。
  5. 要输出毫米值:点"导入标定文件"选好 JSON,确认"参考距离(mm)"和"标定后结果(mm)"有数了;必要时用"结果补偿(mm)"和实物量具对齐。
  6. 要把数值发给上位机:在树里右键这个卡尺检测项 →"设为自定义变量",给它取个变量名,再到通讯配置里把这个变量挂出去。
  7. 点"保存工程"。

常见误判与处理

现象 原因 处理
一直判 NG,"结果"页里边缘数不是 2 卡尺罩住的边多于或少于两条 缩短 / 移动卡尺矩形,只罩住目标那两条边
找不到边缘 "对比度阈值"太高,或边缘本身太浅 先降门槛;降到很低还找不到,就是取像问题——加对比度、换打光角度
挑中了旁边的杂边 门槛太低,或极性设成了"全部" 提高"对比度阈值";把"边缘1""边缘2"按实际明暗方向分别设死
距离值每件跳动很大 卡尺矩形太窄,单行噪声直接影响结果;或边缘毛糙 把矩形加宽一点;适当加大"滤波半宽(像素)"
距离整体偏了一个固定量 卡尺量的是边缘中心位置,和实物量具的基准不一致 用"结果补偿(mm)"补平
"标定后结果(mm)"一直是"null" 这一项还没跑过 点运行按钮跑一次
毫米值一直是 0 没导入标定文件,或这一次判了 NG 导入标定文件;先把判定调到 PASS
提示输入图片不是灰度图 卡尺只吃灰度图 检查检测方案的取像设置
卡尺框跟着产品跑偏 标签外框定位没跟上 回标签外框调定位

相关页面