文档库 最新最全的文档下载
当前位置:文档库 › Sherlock DALSA Coreco IPD 中文资料 Sherlock 中文

Sherlock DALSA Coreco IPD 中文资料 Sherlock 中文

加拿大DALSA Coreco IPD机器视觉开发软件

S h e r l o c k6应用编程入门

文/深圳市众为兴数控有限公司视觉部王寅

目录

Sherlock操作界面介绍..................................................................................................................................................2页什么是Sherlock Investigation.............................................................................................................................2页Sherlock主界面菜单栏说明................................................................................................................................3页Sherlock主界面图形工具栏介绍………………………………………………………………………………4页

Stakeout介绍…………………………………………………………………………………………………………….5页什么是Stakeout…………………………………………………………………………………………………5页Stakeout工具栏…………………………………………………………………………………………………6页

Peek介绍………………………………………………………………………………………………………………….6页什么是Peek……………………………………………………………………………………………………...6页Peek中对图象进行预处理……………………………………………………………………………………...7页 Peek中对算法进行设置………………………………………………………………………………………...8页Peek位置设置…...................................................................................................................................................9页

Strategy,Surveillance,Readings,Variables介绍……………………………………………………………9页Strategy窗口工具栏…………………………………………………………………………………………....9页 Reading…………………………………………………………………………………………………………11页Variable变量介绍……………………………………………………………………………………………...11页

Formulae,Subroutines,Flow Control 说明………………………………………………………………….12页Formulae……………………………………………………………………………………………………….12页Subroutines…………………………………………………………………………………………………….13页Flow Control…………………………………………………………………………………………………...13页

Monitor,Reporter,I/O Control 介绍………………………………………………………………………….16页Monitor……………………………………………………………………………………………………........16页Reporter…………………………………………………………………………………………….……….....16页I/O Control……………………………………………………………………………………………………..17页

Investigation Debug如何进行程序的调试……………………………………………………………………….17页Debugging调试模式…………………………………………………………………………………………17页Breakpoints设置程序断点……………………………………………………………………………………18页

Sherlock典型Peek算法介绍……………………………………………………………………………………….18页Sherlock中像素单位与实际物理单位之间的校正转换(Calibration)…………………………………...18页Landmarking用于自动校正Peek位置………………………………………………………………………21页SmartInspect模板匹配算法…………………………………………………………………………………..23页Search寻找算法………………………………………………………………………………………………24页SmARTSearch………………………………………………………………………………………….25页

Smart360……………………………………………………………………………………………….26页

在VB环境下为Sherlock编写终端用户操作界面…………………………………………………………….28页

VB环境中进行Sherlock应用开发软件结构示意图…………………………………………………………..30页

用Sherlock开发项目应用…………………………………………………………………………………………...31页Sherlock与VB实现通讯连接…………………..…………………………….………………………………31页VB中调用Sherlock中的算法结果和各种变量……………………………………………………………...34页Sherlock中的VBScript使用方法……………………………………….……………………………………34页Sherlock中VB script的编写规则要求………………..……………………………………………………..36页

一. S herlock操作界面介绍

什么是Sherlock Investigation?

Sherlock Investigation 是Sherlock软件的工程文件,其后缀名为(.inv),一个Investigation文件包括:

一个或多个Stakeout窗口– 指所显示的图像及要定义的Peeks (要处理的感兴趣区域)

Strategy – 程序编辑窗口,从图像提取信息,并以此做出决定

Surveillance – 将在处理中提取的数据结果显示出来

Monitor – 显示运行时间信息(错误,处理时间)

Reporter – 显示由程序产生的统计数据和信息

如下图所示:

Stakeout

Peek

Monitor

Surveillance

Sherlock 主界面菜单栏说明

File

打开新或旧的 Investigation 文件, 并存储Investigation 文件 建档 investigation (文本目录) View

打开和关闭Strategy, Surveillance, Monitor 和Reporter 窗口。 Insert

在Strategy 应用程序编辑窗口中添加Subroutine, Stakeout, Formula, IO/Ctrl, Flow Instruction, Variable, VB script Code Investigate

选择单步,连续运行应用程序或进入调试模式对应用程序进行调试 Options

进行Stakeout, Hardware, Report, Preferences, Format 的基本设置 Window

Windows ?-标准微软windows 安排选项 Help

打开Sherlock 在线帮助文档

Stakeout 主界面图形工具栏介绍

打开已保存的

应用工程

连续运行Investigation

储存当前的Investigation 应用工程

调试模式切换

在线帮助

单步运行Investigation

新建一个Investigation 工

程文件

二.Stakeout介绍

什么是Stakeout?

Stakeout窗口是Sherlock软件中的图像采集窗口,用于显示CCD所采集的图像和进行各种图像处理。

每个 Stakeout 包含一幅要处理的图像;

每个 Stakeout是一幅图像;

每个Investigation项目程序可有无数的 Stakeout;

Stakeout中的图像来源可以是从相机,图像文件,或另外的 Stakeout中获得。

如下图所示一个Investigation中包含了4个Stakeout,每个Stakeout中都采集了不同的图像,我们可以分别在不同的Stakeout窗口中使用不同的Peek工具对图像进行各种功能的处理。在每个Stakeout中用Peek进行了处理后都有对应的程序模块在Strategy应用程序编辑窗口中生成,这些程序将作为这个Investigation工程程序的组成部分。

Stakeout图形工具栏介绍

图像缩小或放大 加载图像到 Stakeout 里或

将 Stakeout里的图像存储开始或停止图

添加 各种Peek 到 Stakeout 里

像采集,无需

处理

三.Peek介绍

什么是Peek?

Peek就是一种对图像中需要分析处理的区域进行划分的工具,它也可以直接理解成为感兴趣区域或图像检测区域。

由于我们在实际项目中所要处理分析的图像区域大小形状各不相同,因此在Sherlock中设置了不同种类的Peek

来解决这个问题。

Sherlock中Peek的分类:

面状Peek

1. Point Peeks 点状Peek,它以单个像素为检测区域

2. Rectangle Peeks 矩形Peek

3. Parallelogram Peeks 平行四边形Peek

4. Annulus Peeks 半伞形Peek

5. Torus Peeks 圆环形Peek

线形Peek

1. Arc Peeks 弧线Peek

2. Circle Peeks 圆圈Peek

3. Spoke Peeks 星形放射线Peek

4. Bull’s eye Peeks 牛眼圆环Peek

5. Rake Peeks 梨耙Peek

在下图中我们例举了几个常用的Peek : 线形Peek

矩形 Peek

圆环面 Peek

犁耙Peek

Peek 中对图像进行预处理

在每个Peek 中都可以进行图像算法的选择和处理,我们在Stakeout 窗口中用鼠标左键双击Peek ,将会弹出Peek Options 窗口。在这个窗口中我们可以对Peek 所划区域进行图像的预处理和图像处理算法的选择设置。

在一个Peek 中,为达到检测要求的图像效果,我们可以对检测区域中的原始图像最多进行4次不同的图像预处理。 预处理器可改变 Peek 中的像素值

预处理器预处理参数设置

Threshold阚值分割预处理器参数对话

Peek中对算法进行设置

根据不同的应用需要我们可以为Peek区域选择不同的处理算法来实现检测目的。

下面这个Count算法可从Peek中的像素里提取信息

算法选择计数算法参数对话框

算法参数设置

Count算法的目的是从图像中提取不同灰度值的像素,上面我们提取的是灰度值为255的所有像素。在算法选择窗口中提供了大量具有强大实用功能的图像处理算法供我们选择设置。

Peeks 位置设置 Peek 名称

Peek 位置选择上下左右水平移动、顺逆旋转

Peek 显示方式选择

四.Strategy ,Surveillance ,Readings ,Variables 说明

Strategy 程序编辑窗口:

Strategy 是Investigation 执行采集和分析图像所采取的一系列步骤 (程序)

Variables变量

显示窗口

Strategy程

序编辑窗口

Strategy窗口菜单栏

在一个Strategy里您可以添加或删除的元素

Subroutines

(添加子程序)Stakeouts (添加组合公式)Flow controls (添加变量)I/O controls (添加代码)(添加Stakeout窗口)(程序流量控制)(I/O信号设置)

Reading

Readings 是一个Peek的算法所归返出的数据。每一算法归返至少一个或几个Reading.,它们在Strategy程序编辑 窗口中显示出来。

Reading 种类

B Boolean (True/False)

N Number

P Point (x,y coordinate坐标)

L Line (angle, distance)线(角度,距离)

S String (text)字符串

[ ] Arrays of the preceding types以上各类型的矩

这是由正执行Connectivity算法的矩形Peek

rectA 所归返的Readings,根据不同检测算法

所显示出的变量不相同。

Variable变量类型介绍

变量是用户建立的数据容器

变量的种类(与 Readings相同)

(True/False)

B Boolean

N Number

P Point (x,y coordinate坐标)点

L Line (angle, distance )线(角度,距离)

S String

(text)字符串

[ ]Arrays of the preceding types以上各类型的矩阵

五.Formula,Subroutines,Flow Control 说明

Formula组合公式:

Formula操控数据,其输入一般是从算法里得来的Readings数据或从别的函数公式里来的结果

在下面Formula Edit窗口中,我们所设置的Formula 公式的功能是计算由Peek rectA的算法(Connectivity)所归返的区域矩阵(N[ ] rectA.area)的平均值(N avg)

该函数说明所选的公式做什么(求均值)及它需要什么样的输入 (N[], 一数字式矩阵) Subroutines:

Subroutine 子程序是Strategy隔离的分部,它作用是:

用作条件式执行

Strategy内的重用性

使数据输出简单化

Flow Control:

流程控制的作用:

调用子程序

从子程序中提早退出

跳到在同一个程序中的声明里

仅当dist from 1 to 2超出容忍范围

时调用子程序Reject part Array只有已存在的子程序会出现在此表

上。

如果拒绝计数在容忍范围Array内,会从Reject part子程序

返回;不需执行子程序里任

何其它元素。

当dist from 1 to 2在容忍Array

范围内时,程序跳到soA 从

头开始执行。

子程序可被自动调用,无需 Flow Control控制,只要在Subroutine edit窗口中选择After loading investigation。

六.Monitor,Reporter,I/O Control 说明:

Monitor:

Monitor 窗口显示Investigation运行时的各种执行信息,如错误

执行次数

检测时间

Reporter:

Reporter 显示 Investigation 运行时应用产生的执行信息,它可以进行自行设置如:对操作员的信息

关于Readings的统计信息

I/O Control:

I/O Control为输入或输出产生,测试,或等待

输出: 模拟,数字,系列信号,写进文件里的字符串及生成设置Reporter

输入: 模拟,数字,系列信号,文件串

缩小放大 Stakeouts图像

重置Peeks大小和移动Peeks

七.Investigation Debug如何进行程序的调试

在我们完成了一个Investigation的项目程序后,我们怎么能够对我们编写的视觉应用程序进行验证调试呢,这就要用到我们下面将要介绍的Sherlock中的调试功能。

进入Debugging调试模式的步骤:

首先我们要在Sherlock主界面图形工具栏中进行如下操作

选择Investigate 调试按钮开始进入 Investigation的调试模式

选择Investigate 单步调试按钮进行每次一步的程序运行

选择Investigate 终止按钮跳出调试模式

选择Investigate中跳到下一断点按钮直接运行到设置的下一断点处

Breakpoints设置程序中断点

程序中断点的设置是在Strategy – 程序编辑窗口中完成的

单击鼠标左键可以在Investigation程序的

任何位置设置断点

如左图中我们在P cent[0]的位置设置了

一个断点

八.Sherlock典型Peek算法介绍:

Sherlock中像素单位与实际物理单位之间的校正转换(Calibration)

Sherlock软件系统默认设置为以单个像素为测量单位(如上图所示距离单位是19.198像素) 。但如何办到测量距离单位是毫米? 或英寸?或微米?

这就需要我们预先将系统默认的像素单位转换为CCD所拍摄图像物体实际物理单位,我们可以通过以下步骤实现:为标定相机,您必须首先定位四个已知相互距离的点。我们试以点之间的距离单位是英寸作为标定,如下图

在图中我们用矩形Peek选择四个圆点,将这四个点的位置坐标作为标定公式的输入。然后我们在Strategy程序编辑窗口中添加一个Formula组合公式,在Formula公式编辑窗口中将四个点的中心添加到Inputs中,然后在算法Function中选择Calibration-P,P,P,P

点击公式参

数框,出现

编辑坐标系

统对话窗

口,您可输

入四个点的

实际距离。

在进行标定的过程中,如Strategy程序编辑窗口中的主程序包括含有公式的子程序,则子程序必须被调用。

相关文档