文章目录
- 前言
- 一、HDevelop介绍
- 1. 关于HDevelop的几点事实
- 2. HDevelop XL
- 3. 术语&使用
前言
看完了HALCON快速向导之后,对HALCON有个大致认识(HALCON基本概念、使用的场景)。但距离实战还差得远,接下来我觉得可以开始学习使用HALCON的IDE——HDevelop。因为实际开发,HALCON相关的工作主要是在HDevelop中进行。
一、HDevelop介绍
HDevelop是一个用于构建机器视觉应用程序的工具箱。它提供了一个高交互性的编程环境用于开发和测试机器视觉应用程序,有助于快速原型的构建。它基于HALCON库,是一个通用的机器视觉包,适用于产品开发、研究和教育。
使用HDevelop,有四种基本的方式来开发图像分析应用程序:
- 在HDevelop交互环境中快速原型开发
你能够使用HDevelop来发现最优的算子和参数,来解决图像分析任务,并且可以进一步使用各种编程语言(如C、C++、C#或VB .NET)来构建应用程序。 - 在HDevelop中进行应用程序的开发
使用HDevelop,你也可以开发一个完整的图像分析应用程序,并且在HDevelop环境中运行它。HDevelop提供的示例程序能够被用作你自己的应用程序的构建块。 - 使用HDevEngine执行HDevelop代码或程序
你能够直接从一个用C++或任何使用HDevEngine能够集成.NET对象的语言执行HDevelop代码或程序。 - 将一个应用程序导出为C、C++、VB .NET 或 C# 源码
你可以将在HDevelop中开发好的应用程序导出为C、C++、VB .NET或C#源码。该程序源码可以被编译并与HALCON库链接,使其作为一个独立的应用程序(控制台)运行。当然,你也能扩展生成的代码或将它集成到现有的软件中。
1. 关于HDevelop的几点事实
HDevelop以多种方式支持你的应用程序开发:
- 通过HDevelop的GUI,算子和图像数据对象能在单一环境中直接被选中、分析和变更。
- HDevelop会为特定任务推荐算子。此外,主题结构的算子列表(对算子进行分类)也有助于你快速找到合适的算子。
- 集成在线帮助文档包含了每个算子的信息,例如详细的功能描述,典型的继承者和原型算子、算子的复杂度、错误句柄和应用程序示例等。而且,在线文档提供了搜索功能,使你可以搜索完整的HALCON文档。
- HDevelop包含了一个具有编辑和调试功能的程序解释器。它支持标准的编程特性,例如过程、循环和条件语句。甚至可以在程序运行时变更参数(热更新?)。
- HDevelop会及时显示操作结果。你可以尝试不同算子或参数,并能在屏幕上立即看到效果。而且,你可以在不改变程序的情况下预览算子的结果。
- 几种图形工具使你可以在线测试图像数据和控制数据。例如,你能通过简单点击图像窗口中的对象来提取形状和灰度值特征,或交互式地检查图像的直方图和应用实时分割来选择参数。
- 内置的(built-in)图形助手为更复杂的机器视觉任务提供了交互式界面。助手也能够在当前程序中生成HDevelop代码。
- 具有自动垃圾回收功能的变量用于管理图像对象和控制值。
- HDevelop支持即时(just-in-time)编译程序以优化性能,也支持将过程作为单独的子线程调用。
2. HDevelop XL
除了标准的HDevelop之外,还有一种变体叫做 HDevelop XL,它是基于HALCON XL的。它们的UI是相同的,但是HALCON XL对大图像做了优化。在本文的其余部分,当提到HDevelop时,可以替代HDevelop XL(若将要使用的是其变种)。
3. 术语&使用
HDevelop的GUI遵循历来的用户习惯和使用模式。这里解释的大多数术语对大部分用户来说都是习惯,略过问题也不大。(因为日常用电脑就是这么用的)
鼠标使用
- 单击/点击(click)
用鼠标左键单击,例如,标记或选择一项或激活按钮。要选择多项,按住 ctrl 键的情况下,再鼠标点击某项。要从列表中选择多项,点击第一项,按住 shift 键并 点击最后一项,所有的中间项也会被选中。 - 双击(double-click)
用鼠标左键进行两次连续的快速点击,如,打开选中项的对话框。双击主要是单击后哦附加操作的快捷方式。 - 右击(right-click)
鼠标右键单击往往是用来访问UI的一些附加功能,例如,访问内容相关的菜单、功能表。在HDevelop中点击鼠标右键也会结束交互绘图功能。 - 拖拽(drag)
保持鼠标左键按下的状态,同时移动鼠标,最后松开鼠标按键。通常用于移动项、缩放窗口、快速选中多项,例如,程序行或绘制形状。 - 拖放(drag-and-drop)
HDevelop支持从其它应用程序中拖放图像文件和HDevelop程序。例如,你可以从文件浏览器(资源管理器)中拖动一个HDevelop程序图标,并且把它放置在HDevelop窗口以加载它。 - 鼠标中间按钮(middle mouse button)
对于三键鼠标,鼠标的中间按键用于将剪切板(clipboard)的文本粘贴到文本域(Linux下)。 - 鼠标滚轮(mouse wheel)
现在大部分三键鼠标,将鼠标中间按键和滚动轮组合在了一起。HDevelop在许多场景下都支持鼠标滚轮。鼠标滚轮操作光标下的GUI元素。例如,你可以使用鼠标滚轮快速滚动大的程序列表,从列表中选中值或将显示的图标连续缩放。通常,窗口会提供一个能被鼠标滚轮快速滚动的滚动条。此外,旋钮盒(期望数字值的文本域)的值也可以使用鼠标滚轮增减。
键盘使用
HDevelop是键盘友好的(keyboard-friendly)。大多数使用鼠标能操作的GUI功能,使用键盘同样可以操作。许多重要的功能,通过键盘快捷键也是可用的,这些快捷键值得被记住。当用HDevelop编程时,保持手放键盘上,可用增加工作效率(时刻准备按快捷键?)。因此,许多导航任务(如选参数域、从列表中选值)能通过键盘轻松做到。
为了便于记住快捷键,许多快捷键都以通用的组合方式来表示上下文。例如,许多与图形窗口相关的快捷键,通过按 Ctrl+Shift+G+另一个按键 引入的,例如,Ctrl+Shift+G+Del 清除所有图形窗口。由于保持 Ctrl+Shift 按下状态通常比较轻松,当按下第二个键时,用依次按的方式也是允许的(Ctrl+Shift+G,Ctrl+Shift+Del)。在macOS中,Cmd 用来替代 Ctrl。
某些按键组合也许会与操作系统或窗口管理器的按键功能冲突。例如,在图形窗口中使用 Ctrl+Alt+Cursor Keys 移动显示的图像,同时显示像素信息。在窗口下方,也可以改变屏幕的方向。查看系统文档,了解如何禁用或变更本例中的冲突键绑定。
窗口与窗口管理器
在HDevelop默认的窗口模式中,窗口可以通过拖拽标题栏在主窗口中自由移动;也可以通过拖拉窗口的边缘来缩放;点击窗口内部区域,可以使窗口获得焦点,也会引起对应的窗口浮到前面(显示在最前面)。从窗口菜单中选中完全被其他窗口覆盖的窗口,也可以使它浮到前面。
还有一种可选的窗口模式叫SDI,它会将句柄功能委托至窗口管理器。
缩写(Abbreviations)
- BP breakpoint 断点
- IC insert cursor 插入光标
- GUI graphical user interface 图形用户界面
- MDI muiti-document interface 多文档界面(应用程序中可以同时打开多个文档。每个文档都有自己的窗口,文档或子窗口被包含在父窗口中,父窗口为应用程序中所有的子窗口提供工作空间)
- PC program counter 程序计数器
- SDI single-document interface 单文档界面(应用程序中每次只能打开一个文档,想要打开另一个文档时,必须先关闭已打开的文档)
- XLD extended line description 扩展线描述