HexSight开发―VisualC++篇.doc

上传人:yyf 文档编号:5048012 上传时间:2020-01-30 格式:DOC 页数:42 大小:1.92MB
返回 下载 相关 举报
HexSight开发―VisualC++篇.doc_第1页
第1页 / 共42页
HexSight开发―VisualC++篇.doc_第2页
第2页 / 共42页
HexSight开发―VisualC++篇.doc_第3页
第3页 / 共42页
HexSight开发―VisualC++篇.doc_第4页
第4页 / 共42页
HexSight开发―VisualC++篇.doc_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《HexSight开发―VisualC++篇.doc》由会员分享,可在线阅读,更多相关《HexSight开发―VisualC++篇.doc(42页珍藏版)》请在三一文库上搜索。

1、HexSight 开发Visual C+ 篇本章节的指南将指导你通过使用Visual C+对HexSight进行开发。只要你跟着指南的每一个步骤进行下去,就能逐步全面的了解如何为你的检测工具添加和配置目标定位应用程序。注意:本指南假定你对于Visual C+, MFC and COM有一定的初级知识。若想查看开发包自带的编辑指南程序原文件,MFC源代码必须安装,且VisualC+_PathMFCsrc,“VisualC+ PathINCLUDE”, “VisualC+ PathMFCINCLUDE”,”VisualC+ PathATLINCLUDE”目录必须增加到VC+的搜索路径的清单上,用来

2、发现所包含的文件(在VC+的菜单栏中选择:工具选择目录附加到搜索路径清单上的目录)章节概要指南 1:定位器(Locator)指南 2:显示(Display)指南 3:卡尺(Caliper)指南 4:斑点分析器(Blob Analyzer)指南 5:模板定位器(Pattern Locator)指南 6:边缘定位器(Edge Locator)指南 7:标定(Calibration)指南 1: 定位器(Locator)介绍第一个指南将告诉你怎样建立一个基本的HexSight应用程序,无论已定义模板的物体以什么角度和位置呈现出来,该程序都可以给其定位。创建工程在这一部分,你将创建应用程序的工程,增加基

3、本代码实现与工作界面的交互,而且增加HexSight应用程序的控制部件,你将通过编辑它来建立应用程序。建构工程这里将指导你如何建立工程如何为工程选择合适的风格类型,以及需要在工程中添加哪些必须的文件来创建应用程序。1启动Visual C+,创建一个新的MFC AppWizard (exe) 工程。命名为HookInspection,创建一个任意名字的工作文件夹,并在路径选择中指定创建好的文件夹的准确路径,然后点击OK。2在MFC AppWizard里的step 1,选择Dialog based。3在Step 2中, 禁用About box选项 ,并规定 Hook Inspection 为对话框

4、标题。点击Finish。4. Developer Studio 将告诉你,你的程序工程的框架将使用哪些选项,点击 OK.5. Wizard 产生的最重要的文件是HookInspectionDlg.h 和 HookInspectionDlg.cpp。你可以开始编辑这个基本的工程了,但是你必须为你的程序增加一些程序代码并创建界面,这样才能使之成为一个可用的工程。建构程序界面在此你将建立工作界面,你可通过它和你的应用程序以及视觉检测结果进行交互。1 点击位于Workspace窗口左下方的ResourceView按键,打开该工程的对话框模板。2. 选择对话框模板,并重新设置合适的尺寸,约 226 X

5、149。看屏幕下方的状态区,尺寸会在右边显示。3. 在对话框上, 删掉原有的所有对话条目,增加一个Group Box控件。在Group Box控件中添加5个Edit Box控件,相应的命名为IDC_EDIT_TYPE,IDC_EDIT_SCALE,IDC_EDIT_ROTATION,IDC_EDIT_TRANSLATION_X和IDC_EDIT_TRANSLATION_Y。设置Group Box的标题,设置五个Edit Box的尺寸并为他们添加Static Text控件作为标签。Edit Box中应是空白的。你的对话框看起来如图1的: 图1:Visual C+目标形态对话框4. 在对话框的底部

6、,增加3个命令按钮(Button控件)并命名为IDC_BUTTON_INSPECT, IDC_BUTTON_CONFIGURE和IDC_BUTTON_QUIT。给它们设置相应的标题为:Inspect,Configure 和Quit.5. 增加一个Check Box控件,并命名为IDC_CHECK_CONTINUOUS,设置其标题为Continuous Mode,最后增加一个编辑窗口命名为IDC_EDIT_TIME 和一个合适的标签(Static Text)。让其看起来如图2。界面就此完成,存盘。图2:带有命令按钮的Visual C+对话框增加成员变量为了简化和界面的交互,我们将要通过MFC C

7、lassWizard的帮助增加一些成员变量。1.按CTRL+W;就会弹出MFC ClassWizard 窗口。2. 点击 Member Variables 成员变量按钮,然后在Class Name combo box中选择CHookInspectionDlg. 你就会看到如下图3的对话框。图3:MFC ClassWizard 成员变量编辑器3.对于每一个控制ID,你都必须增加一个成员变量。要增加成员变量,双击控制ID然后填写表格。下面你可以看见IDC_BUTTON_CONFIGURE完成后的形式如图4。图4:通过 MFC增加一个成员变量4.根据表1的清单增加其它的成员变量表1:成员变量Cont

8、rolIDTypeIDC_BUTTON_INSPECTCButtonmInspectButtonIDC_BUTTON_QUITCButtonmQuitButtonIDC_CHECK_CONTINUOUSCButtonmContinuousCheckIDC_EDIT_ROTATIONCEditmRotationTextIDC_EDIT_SCALECEditmScaleTextIDC_EDIT_TIMECEditmTimeTextIDC_EDIT_TRANSLATION_XCEditmTranslationXTextIDC_EDIT_TRANSLATION_YCEditmTranslationYT

9、extIDC_EDIT_TYPECEditmTypeText增加一个 HexSight 应用控制组件你将要给对话框增加一个ActiveX控制组件。HexSight应用控制组件是每一个HexSight机器视觉应用系统的核心。1. 在对话框模板上单击鼠标右键,在窗口的顶部选择Insert ActiveX Control.2. 下拉滚动条,找到 HSApplication Control。选中它然后点击OK。于是HexSight应用控制组件便作为一个新的图标显示于对话框。可以把它拖放至一个合适的位置如图5。图5:带HexSight 应用组件的对话框3. 鼠标在HexSight Application

10、 Control 图标上单击右键,然后在弹出菜单中选择Properties,为其命名为IDC_CONTROL_APPLICATION。4. 你必须在类里手动增加一个数据成员。注意:不要用CLASSWIZARD来为HEXSIGHT控制组件增加变量。由CLASSWIZARD生成的WRAPPERS 在使用HEXSIGHT ACTIVEX 控制库时可能产生兼容性的问题。在HEXSIGHT下你必须分布式使用 WRAPPERS。当你增加一个HEXSIGHT 控制组件,要采取以下步骤。5. 打开 HookInspectionDlg.h 文件。在现有的语句(普通字体显示)之后增加以下语句(粗体显示):#if_

11、MSC_VER=1000#pragma once#endif/_MSC_VER_=1000#include HSApplication.h./AFX_DATA(CHookInspectionDlg)enumIDD=IDD_HOOKINSPECTION_DIALOG;HSApplication mApplicationControl;6.打开HookInspectionDlg.cpp 文件,并在DoDataExchange函数中增加以下语句(黑体)。/AFX_DATA_MAP(CHookInspectionDlg)DDX_Control(pDX,IDC_CONTROL_APPLICATION,

12、mApplicationControl);7. 在屏幕底部选择FileView 键。8. 右击 HookInspection 文件节点,选择Add Files to Project。9. 进入 HexSight的安装目录然后打开Wrappers目录。记录该目录的完整路径,你稍后将会用到它。10.选择以下文件: HSApplication.h, HSApplication.cpp, HSArc.h,HSArc.cpp, HSLine.h, HSLine.cpp, HSModelOptimizerInterface.h, HSModelOptimizerInterface.cpp, HSPoint

13、.h, HSPoint.cpp, HSCalibration.h, HSCalibration.cpp, HSDatabase.h, HSDatabase.cpp,HSErrorObject.h, HSErrorObject.cpp, HSExplorer.h, HSExplorer.cpp, HSImage.h, HSImage.cpp, HSLocator.h, HSLocator.cpp,HSModelEditorInterface.h, HSModelEditorInterface.cpp,HSProcessManager.h, HSProcessManager.cpp, HSScen

14、e.h, HSScene.cpp,HSView.h 和 HSView.cpp. 点击 OK.11. 在编辑之前,向目录清单增加Wrappers路径,该目录用于所包含文件的搜索。使用菜单栏中的Project/Setting. . 选择C/C+ 键,然后选择分类(Category)为:Preprocessor。修改combo box 的设置(setting for)为:适合所有配置(all configuration)。把Wrappers 路径(先前提到的)增加到Additional include directories编辑栏中去。点击OK.12. 现在你可以编辑你的工程而不会收到错误信息。给主

15、框加程序增加基本代码你需要增加基本代码,这样就可和你的应用系统进行交互。当在浏览该指南的其它章节,需要给应用程序增加新的功能时,你只需在程序代码中增加些其他语句即可。1. 返回至资源编辑器(Resource Editor),打开你的应用程序的对话栏。2. 鼠标左键双击Quit.3. 此时会弹出一个窗口(如果没有,这是因为“Double-click in dialog editor edits” 的代码选项(在ToolsOptionsCompatibility tab中)并没有被选中)。双击消息BN_CLICKED,会弹出对话框要你确定所增加函数的名字,接受缺省名(OnButtonQuit)。4

16、.点击Edit Existing然后在函数中增加以下语句:void CHookInspectionDlg:OnButtonQuit()WaitForCompletion();EndDialog( IDOK );这样当点击Quit键时,就会终止应用程序。5. 你必须给你的工程增加WaitForCompletion函数。点击ClassView 键而且右击CHookInspectionDlg类,选择Add Member Function.命令。该函数类型是void,把它声明为WaitForCompletion。指出该函数是private。点击OK,在该函数中增加以下语句:void CHookInsp

17、ectionDlg:WaitForCompletion()if ( mContinuousCheck.GetCheck() != 0 )mContinuousCheck.SetCheck( 0 );6. 返回资源编辑器,双击Configure (按照创建Quit键相同的步骤进行)在代码中增加以下语句:void CHookInspectionDlg:OnButtonConfigure()mApplicationControl.ShowInterface( FALSE ,HEXSIGHT_NONE);这些代码使得当你在程序对话框中点击Configure按钮时弹出HexSight Applicati

18、on Control的一个非模态对话框界面.7. 在资源编辑器中,双击Inspect (按照创建Quit键相同的步骤进行) 在代码中增加以下语句:void CHookInspectionDlg:OnButtonInspect()tryHSProcessManager lManager;mInspectButton.EnableWindow( FALSE );lManager = mApplicationControl.GetProcessManager();/ Inspection loopdoDoEvents();while( mContinuousCheck.GetCheck() = 1

19、);mInspectButton.EnableWindow( TRUE );catch( . )mInspectButton.EnableWindow( TRUE );throw ;这是一个用于检查应用程序的主循环。直到在界面中使Continuous Mode失效,它才会结束循环。8. 在C+中,没有与Visual Basic中DoEvents函数功能相当的函数。因此你必须自己创建DoEvents函数。点击ClassView 键而且右击CHookInspectionDlg类,选择Add Member Function.命令。该函数类型是void,把它声明为DoEvents(void)。点击OK

20、,在该函数中增加以下语句:CHookInspectionDlg:DoEvents( )MSG lMessage;while ( PeekMessage( &lMessage, NULL, 0, 0, PM_REMOVE ) !=FALSE )TranslateMessage( &lMessage );DispatchMessage( &lMessage );9. 最后,你必须在退出程序之前增加消息操作器来停止连续模式(Continuous Mode)。按CTRL+W;就会弹出MFC ClassWizard。点击消息映像Message Maps按钮。在类名中选择CHookInspectionDl

21、g。在目标Ids(Object IDs)中选择CHookInspectionDlg。在消息清单中,找到并双击WM_CLOSE和WM_DESTRO0Y。在新的函数中增加以下语句:void CHookInspectionDlg:OnClose()WaitForCompletion();CDialog:OnClose();void CHookInspectionDlg:OnDestroy()CDialog:OnDestroy();WaitForCompletion();10. 你已完成了该应用程序的代码编制。运行并调试该应用程序。当你确信一切正常,就可以寸盘,然后继续下一个节。增加获取设备(Acqu

22、isition Device)工具在本节,你将学到怎样在HexSight Application Control中例示一个程序。你同样会学到怎样配制一个获取设备工具(Acquisition Device)。该工具可从现有的数据库文件中获取一个灰度值图像来模拟所获取的实际图像。对该获取设备进行示例为了建立视觉应用程序,HexSight程序被用来作为应用程序控制过程管理器(Application Controls Manager)进行示例。1. 在对话模板上,右击HexSight Application Control。从菜单中选择HSApplication Control ObjectEdit。

23、这时会显示HexSight应用程序控制器(Application Controls Manager)界面,激活的页面就是程序管理器(Process Manager)。在程序管理器(Available Process)的可用程序清单中,选择HSAcquisitionDevice然后点击Add Process。获取设备(Acquisition Device)的窗口就会显示出来。在此本节指南的最后,HexSight 应用程序控制器应如图6所示:图6:HexSight应用控制程序管理器配置获取设备(Acquisition Device)你将用现有的图像资料来模仿所获取的实际图像。用于该指南的数据库是建

24、立在相同的目标图像之上的,只是实际图像旋转了不同的角度而已。1.在获取设备通用面板(Acquisition Device General panel)中,键入Acquisition作为程序名(取代HSAcquisitionDevice0)2.在Configuration面板中,选择Input键,从清单中选择File Emulation。3.点击Load然后载入以下文件:InstallationPathTutorialVisualC+HookInspectionDataHook.hdb.4. 除了第一个Image0,使所有数据库的其它图像不被选中,这就确保在稍后的指南中该图像可被用来创建摸板。图

25、7:获取设备配置面板5. 在标定(Calibration)和输出(Output)子面板中保留缺省设置,点击OK返回HexSight应用控制系统(Application Control)的程序管理器(Process Manager)。为继续完成程序管理器(Process Manager)中的程序示例,你可以点击Execute Sequence。举例来说,如果不止一个可用的图像存在于获取设备(Acquisition Device)的清单(Emulation list)中,点击程序管理器中的Execute Sequence就会输出一个新的灰度图像,然后执行清单中随后的程序。显示背景(Scenes)和

26、图像(images)HexSight应用控制系统(Application Control)的Explorer面板中显示了应用程序运行数据库中所有视图的层次关系,背景(Scenes)和图像(Images)都保留在应用程序的数据库中。1. 在HexSight 应用控制系统(Application Control)中选择Explorer面板。2. 点击旁边的 + 号来展开数据库。3.展开Acquisition, 然后是Images. 点击Grey-Scale Image。这将显示由获取程序输出的灰度图像,如图8所示:图8:HexSight应用控制系统 Explorer增加定位器工具(Locator

27、Tool)使用轮廓的几何因素,定位器(Locator)可以找到用输入灰度图像定义了模板的目标。定位器(Locator)的界面提供: 一个对输入和输出进行配置的综合面板(General)。 一个轮廓面板(Contour)。该面板可以设置图像中感兴趣的部分而且可以随意订制轮廓检测参数。 一个用于创建和编辑模板用的模板(Model)。 一个搜索(Search)面板。该面板是用于对旋转、灰度因素、所找到的目标数量等参数设定约束条件的。 一个结果面板(Result)可以用来显示搜索的结果。初始化定位器(Locator)这里增加一个定位器(Locator)程序,其方法与增加获取设备(Acquisition

28、 Device)的步骤相同。1. 在HexSight应用控制程序管理器(Application Control Process Manager)中,从HexSight Locator Tools文件夹中选择HSLocator点击Add Process.2. 在新增加的定位器(Locator)程序的属性窗中,选择General 键3. 键入名字 Locator ,取代 HSLocator1.4. 在输入部分,点击数据库选择图标,然后选择Acquisition-Grey-Scale Image. 如图9:图9:数据库选择图标5.在输出框架中保留缺省名 Model View 和Instance Sc

29、ene。保留它们相应的Check Box,这样就能确保模板显示和实例背景输出到运行数据库。6. 点击Execute.轮廓(Contour)检测参数1. 选择 Contour 键2. 保留Search Area的缺省设置.为了加速定位器 (Locator)程序速度,使Entire Imagecheck box不被选中可以强制搜索输入图像的特定区域而非完整的图像,叫做搜索区Search Area。Entire Image特征不被用于这个指南。3.为 Detection 参数保留缺省设置。设置Parameter Based on combo box为All Models,将可以为当前模板自动选择最佳

30、轮廓检测参数。通过在combo box选择Custom可以手动订制轮廓的检测方案。通常轮廓检测参数的自动选择都能工作的最好,只有在输入图像等级较差时才有必要采用手动订制方案。4.点击 Execute.后,通过点击显示窗下方的 Detail, Level 或 Both 键来观察轮廓粗糙度等级的不同。创建模板在这一部分,你将学到怎样用模板编辑器来创建一个目标的模板。模板是一个参考或一种概念,它代表了将要被定位器(Locator)的搜索程序用来识别以及给定位的目标的轮廓。该模板可被存储于数据库文件中,以便以后使用。1. 选择Model键,然后在Models框中点击Add键。然后Create New

31、Model对话框马上显示出来如图10图10:创建新模板对话框2. 给模板命名Hook.3. 点击OK打开模板编辑器(Model Editor)使用模板编辑器(Model Editor)模板编辑器用来创建新模板以及修改现存的模板。一旦你已经创建了用于该应用程序的hook模板,你可以将其保存,以便以后再用。创建源轮廓线以及选择模板特征定位器使用两个粗糙等级来识别目标以及为目标定位:Outline Level和Detail Level。Outline Level被用来快速识别潜在的目标实例。Detail Level被用来在图像内确定这是否是正确的目标以及精确定位。当选择Outline Level和D

32、etail Level,源轮廓将会被创建。然后从源轮廓选择特征来创建模板。当Automatic Levels check box被选中时,这两个轮廓检测参数(Outline Level 和 Detail Level) 将通过分析模板的边界区域自动实现最优化。通常在创建一个模板时采用自动轮廓检测参数。当产生源轮廓时,Contrast Threshold 被用来设置灵敏性并进行对比。通过在combo box选择Fixed value可以手动设置Contrast Threshold,或通过选择Adaptive Low Sensitivity, Adaptive Normal Sensitivity

33、或 Adaptive High Sensitivity.来进行自动设置。Tracking Inertia被用来密和源轮廓中出现的小间隙。它定义当建立源轮廓时,源轮廓中可以被密和来连接两个边缘元素的最长的间隙。一旦源轮廓被发现, 必须选择特征来建立模板。通过设置 Feature Selection滑块到none来手动选择特征,或通过设置less, normal, more 或 all进行自动选择特征。设置滑块到 normal 将会设置介于Outline和Detail等级的最佳特征。增加该设置将会增加更多特征,但会导致搜索程序变慢。减少设置会导致识别问题,因为模板可能缺少基本特征。在本指南中,我们

34、将使用缺省的轮廓探测以及特征选择参数来建立模板,如图11所示:图11:模板编辑器界面1. 在 Contour Detection 框中,保留Automatic Levelscheck box选中,将Tracking Inertia 置0,以及将Contrast Threshold combo box置为Adaptive Normal Sensitivity.2.在Feature Selection框中,保留slider在缺省的normal位置。3.在显示中,拖动并调整绿色虚线长方形的大小(该模板的范围栏)把整个目标封装其内。4. 点击 Build Model.现在便创建了一个模板。轮廓检测参数

35、已被最优化处理,而且特征选择包括了Outline和Detail Levels。Outline level被设为8,而Detail level被设为1。为了校验在建立模板时不会碰到什么问题,检查Messages 文本栏。你可以用显示窗来观看模板。通过选择显示窗口底部的Outline键,你可以以Outline level来观看模板。 所选特征以粗体紫红色线条显示出来。没有用到的轮廓以蓝色线条显示出来。通过选择显示窗口底部的Detail键,可以以Detail level来观看特征。所选特征以粗绿线条显示出来。在Detail level下,没有用到的轮廓以细蓝线条显示出来。点击显示窗口底部的Both键

36、,可以同时观看Outline和Detail level。该模板现在可以用来给目标定位。我们将对其进行编辑,看模板编辑器怎样能够用来订制具体的模板从而用于特定的用途。从模板中删除特征在本指南中所建立的应用程序将被用于检测金属钩的外部轮廓的特征。这些步骤将用其外部轮廓进行局部的定位,以及应用工具来检查金属钩内部的长方形,孔型和标签。这些特征都需要被检测到,因为它们可能在实际的部件中被遗漏、错误测量尺寸、或由于外部轮廓而错误定位。因为这些特征并不稳定,所以他们一定要从模板中被删除,以达到图像外部轮廓定位所能达到的最高精确度。第一步将是在Outline level下删掉不想要的特征。1. 在显示窗口底

37、部点击 Outline 键。这样就可以在Outline level下编辑模板。在Model Contents框中的表格显示 Features 子面板,该特征子面板用于模板的Outline level。2. 点击Model Contents 框中的Features 键来激活特征表格。3. 通过点击显示窗中的特征或在特征栏中选择特征来选择所想要得到的圆矩形特征。4 点击 Delete从模板中删除该特征。第二步将是在Detail level下删掉不想要的特征。1. 在显示窗口底部点击 Detail 键。这样就可以在Detail level下编辑模板。在Model Contents框中的表格栏显示 F

38、eatures 子面板,该特征子面板用于模板的Detail level。2. 除了外部轮廓,如果要选择所有其它特征,可以在显示窗或Features栏中,同时按住Ctrl并钩选这些特征。3. 点击 Delete 从模板中删除这些特征。现在不稳定特征已从模板中删除。要以Outline level和Detail level同时观看,在显示窗底部点击Both键。在这种浏览模式下,模板不可编辑。为模板设置目标坐标系统关于部件的外部轮廓,检测程序需要将该特征的测量尺寸显示出来。要安装一个参考框,来显示这些检测值,需要为该部件定义一个目标坐标系。1. 在显示窗底部点击Outline 或 Detail 键。这

39、样就可以编辑目标坐标系。2. 在Model Contents框中点击Coordinate System 键来激活坐标系面板。3. 用鼠标在目标之上定位坐标系标记(黄轴),如图12所示。要旋转目标的坐标系,点击X轴或Y轴的箭头,然后拖动鼠标。要移动坐标系,点击X轴或Y轴的交叉点,然后拖动鼠标。你也可拖动轴的箭头来拉长他们,这不会对坐标系本身有什么影响,不过可以帮你在长特征上排列标记。 通过坐标系面板的文本栏使最后的定位变的更精确。图12:调整模板坐标系的位置和方向给模板增加参考点对于某些应用程序而言,将一个定位的目标实例模板上的特殊点的位置转换为世界坐标系是很有用的。这样做不必手工计算坐标的转换

40、,参考点可以定义在模板上。在这一应用中,我们将在金属钩上方的圆孔上增加参考点。1. 点击显示窗底部的Outline或Detail 键,这样你就可以编辑参考点了。2. 在Model Contents 框中点击Reference Points键激活参考点面板。3. 点击Add 增加一个参考点。4. 点击并拖动目标标记,给部件中上圆孔的参考点定位。调节放大率使之更精确。使用Reference Points 面板中的文本栏,对其效果进行微调。图13:使用模板编辑器增加参考点该参考点并不用于给部件定位,只有轮廓特征被用于定位目标。然而,对于被定位的每个目标,参考点的位置应考虑该实例的比例、旋转和转换。你

41、可以在模板上增加多个你所需要的参考点。给模板手动增加特征在模板编辑器中,你可以从Outline和Detail level不需要用到的轮廓中选择特征。要在Outline level下增加特征,可按下面步骤进行:1. 在显示窗底部点击Outline键,这样就可以在Outline level下编辑模板。2. 在 Model Contents框中点击Features键激活特征栏。3. 使Show 框中的 Grey-Scale Image check box不被选中,这样就仅仅显示轮廓。使绿色的没用到的轮廓更明显。4. 在显示窗中,点击没有用到的轮廓之一,以圆长方形举例。该轮廓变成亮蓝色。5. 在轮廓上

42、点击一个起始点,按住Ctrl 键并且点击轮廓上其它的点。则所选的特征显示成红色。6. 要改变你的选择,只需在轮廓上点击同时按住Shift键。在Model Contents框中点击Add 键,就会在特征栏中显示新的特征。7.在栏目中选择新增加的特征并且点击Delete键,就可从模板中删掉它。8. 要把整个完整的圆长方形作为特征增加进去,在显示窗中双击它,这样整个轮廓被选中。点击 Add 给模板增加该特征。9. 考虑到它对于应用程序不稳定,因此在栏目中选择新增加的特征并且点击Delete键,从模板中删掉它。分析模板当手动编辑完一个模板,有必要检验它是否能够工作正常。在Model Contents框

43、中点击Analyze Model.任何问题都会显示在Messages栏中。保存模板数据库当创建完一个模板后,必须把它保存在模板数据库中,否则当你离开应用程序时,它就会丢失。要保存模板,按以下步骤进行。1. 在模板编辑器中,点击右下方的OK键。这就能将新创建的模板转换为定位器的活动模板数据库。2. 在定位器的属性窗中,选择Model键。3. 在Database窗中,点击Save As.。在弹出的文件另存对话框中,设置模板为名HookModel并将其保存在你的工作目录下。你会发现在同一个应用程序中把模板文件存储的靠近其他HexSight文件将会非常便利。例如图像模仿文件(image emulati

44、on files),程序管理器配置文件(Process Manager configuration file)等。4. 你可在任何时候通过点击Models框中的Edit键返回,重新编辑你的模板。配置搜索参数搜索参数用来约束目标的搜索和识别,以及对定位算法进行配置。1. 选择 Search 键。2. 使 Nominal Scale check box被选中。文本栏中的值应为 1.0.3. 使 Nominal Rotation check box不被选中,其范围为 -180.0 至 180.0.4. 其它所有参数保留其缺省设置。执行定位器以及检验结果创建完模板,而且配置好搜索后,第一步就是检验定位

45、器在用来创建模板的图像中找到目标。1. 选择 Results 键。2. 点击定位器属性窗底部的Execute。3. 确认实例正确定位。4. 点击 Show Results Viewer 来观看添加到灰度图像上的定位实例。如图14所示:5. 将定位器属性窗和Results Viewer 移到屏幕一角。图14:定位器工具的结果显示及其面板下一步就是验证目标是否已经在相应的模仿数据库图像中定位。1. 在程序管理器(Process Manager)中,打开获取设备(Acquisition Device)属性窗。选择Configuration面板,然后点击 Enable All 激活模仿数据库中的所有图

46、像。点击 OK 关闭获取设备(Acquisition Device)属性窗。2. 返回程序管理器点击 Execute Sequence.3. 在定位器属性窗的 Results 面板中,检查实例是否被正确定位。返回程序管理器(Process Manager),点击Execute Sequence几次使定位器能应用于每一个图像中。4. 关闭结果浏览窗,返回定位器属性窗,点击 OK.5. 现在可以返回 Visual C+ 对话框模板并且保存你的成果。关闭窗口退出程序管理器(Process Manager)。如果要返回应用程序,你可以右击 HexSight 图标并选择HSApplication Control ObjectEdit.为定位器增加代码在本节,你将需要增加代码把定位器所发现的实例的属性输出到你的应用程序界面中。 1.在HookInspectionDlg.cpp:的包含文件之后增加该行:#include HSLocator.h2.找到 OnButtonInspect 函数,并且增加如下粗体显示的语句:Note: Existing code appears in normal typefac

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物业管理


经营许可证编号:宁ICP备18001539号-1