【《zw版·Halcon与delphi系列原创教程》
Halcon图层与常用绘图函数

Halcon的绘图函数,与传统编程vb、c、delphi语言完全不同,
     传统编程语言,甚至cad,绘图都是直接采用line、circle函数。
     Halcon,作为专业的图像处理系统,采用的是类似ps的图层、蒙版,并导入了domain(领域)的概念。

这样设计,非常专业,高效,当然,也比较复杂。
      实际图像工程中,往往是结合THImagex、THWindowX(通过THOperatorSetX控件)一起使用。
      此外,Halcon图像体系当中,line、circle、point,点、线、圆、矩形等等,这些基本绘图要素,都是类似对象(class、object)的模式,需要先生成,再disp到THWindowX绘图窗口。
     第三点,Halcon的line、circle、point对象变量,保存的是绘图单元object,最基本的元数据,例如:坐标、尺寸,而颜色,线条粗细,往往在实际生成时,再决定。
     因此,同一个object,在程序不同的地方,最终的颜色,效果是有所不同的,例如:

参见以下源码:

cir:=THRegionX.create(nil);
cir.genCircle(200,200,100); xwin.SetLineWidth(8);xwin.SetColor('blue');
cir.DispObj(xwin);
cimg:=xwin.DumpWindowImage;cimg.WriteImage('png',0,'tmp\w01.png'); xwin.SetLineWidth(2);xwin.SetColor('red');
cir.DispObj(xwin);
cimg:=xwin.DumpWindowImage;cimg.WriteImage('png',0,'tmp\w02.png');

  

同样一个cir对象,同样的位置,因为先后的笔画粗细、颜色不同,而最终表现不同。

第4点,Halcon的line、circle、point等基本绘图语句,颜色。笔画等参数,由THWindowX决定,类似全局变量,而不是绘图语句本身。
       第5点,最终的绘图效果,需要用THWindowX控件的DumpWindowImage、或DumpWindow函数,合并到一个IHImageX类型的图像变量,类似ps的合并可见图层,再保存到图像文件,或者转换成其他图像格式,进行后续处理。
       注意,变量类型必须是IHImageX类型,THImageX、IHUntypedObjectX;类型都不行
       这点很奇怪,Halcon脚本自身,是无需定义变量的,类似python,而二次开发,对于变量的匹配非常严格,象这里,会有OleVariant、Variant也不能通用;
       变量类型,自动匹配、容错匹配,是现代编程语言的趋势,而Halcon,在二次开发接口当中,依然采用严格的强类型匹配,除了德国人的严谨外,可能因为图像系统的复杂性,和第三方开发时的种种不确定因素。

【《zw版·delphi与halcon系列原创教程》,网址,cnblogs.com/ziwang/】

【《zw版·Halcon与delphi系列原创教程》Halcon图层与常用绘图函数的更多相关文章

  1. 【《zw版·Halcon与delphi系列原创教程》 zw_halcon人脸识别

    [<zw版·Halcon与delphi系列原创教程>zw_halcon人脸识别 经常有用户问,halcon人脸识别方面的问题. 可能是cv在人脸识别.车牌识别方面的投入太多了. 其实,人脸 ...

  2. 《zw版Halcon与delphi系列原创教程》发布说明

    <zw版Halcon与delphi系列原创教程>发布说明 zw转载的<台湾nvp系列halcon-delphi教程>,虽然很多,不过基本上都是从cnc.数控角度的demo..  ...

  3. 《zw版·delphi与Halcon系列原创教程》THOperatorSetX版hello,zw

    <zw版·delphi与Halcon系列原创教程>THOperatorSetX版hello,zw 下面介绍v3版的hello,zw. Halcon两大核心控件,THImagex.THOpe ...

  4. 《zw版·delphi与halcon系列原创教程》zw版_THOperatorSetX控件函数列表 v11中文增强版

    <zw版·delphi与halcon系列原创教程>zw版_THOperatorSetX控件函数列表v11中文增强版 Halcon虽然庞大,光HALCONXLib_TLB.pas文件,源码就 ...

  5. 《zw版·delphi与halcon系列原创教程》zw版_THImagex控件函数列表

    <zw版·delphi与halcon系列原创教程>zw版_THImagex控件函数列表 Halcon虽然庞大,光HALCONXLib_TLB.pas文件,源码就要7w多行,但核心控件就是两 ...

  6. 《zw版·ddelphi与halcon系列原创教程》Halcon的短板与delphi

    [<zw版·delphi与Halcon系列原创教程>Halcon的短板与delphi 看过<delphi与Halcon系列>blog的网友都知道,笔者对Halcon一直是非常推 ...

  7. 《zw版·delphi与halcon系列原创教程》hello,zw

    <zw版·delphi与halcon系列原创教程>hello,zw 按惯例,第一个程序是‘hello’ 毕竟,Halcon是专业的图像库,所以我们就不用纯文本版的,来一个专业版.Halco ...

  8. 《zw版·Halcon-delphi系列原创教程》 zw版-Halcon常用函数Top100中文速查手册

    <zw版·Halcon-delphi系列原创教程> zw版-Halcon常用函数Top100中文速查手册 Halcon函数库非常庞大,v11版有1900多个算子(函数). 这个Top版,对 ...

  9. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数·简明中文手册 总览

    <zw版·Halcon-delphi系列原创教程> Halcon分类函数·简明中文手册 总览 Halcon函数库非常庞大,光HALCONXLib_TLB.pas文件,源码就要7w多行,但核 ...

随机推荐

  1. MongoDB过过瘾

    MongoDB 中默认的数据库为 test,连接后尝试以下操作 连接 插入数据:用过json的同学看到这格式相信不会陌生吧! db.person.insert({}) db.person.insert ...

  2. ArcMap打开越来越慢

    原文:ArcMap打开越来越慢 今天终于找到原因了,原来是 C:\Users\Administrator\AppData\Roaming\ESRI\Desktop10.1\ArcToolbox下 Ar ...

  3. ArcGIS API for Silverlight 实现修改地图上的工程点位置

    原文:ArcGIS API for Silverlight 实现修改地图上的工程点位置 #region 处理工程点点击编辑相关事件 public Graphic editgraphics = null ...

  4. SQLServer temporary table and table variable

    Temporary tables are created in tempdb.  The name "temporary" is slightly misleading, for ...

  5. How to read the HTML DTD

    Contents How to read the HTML DTD 1. DTD Comments 2. Parameter Entity definitions 3. Element declara ...

  6. APICloud全面支持WiFi真机同步和实时预览功能

    APICloud工具插件包括APICloud Studio.Sublime Text和Webstorm全面为开发者提供iOS和Android平台真机同步调试功能,不仅可以通过USB方式进行APP真机同 ...

  7. Java静态代码分析工具——FindBugs插件的安装与使用

    1 什么是FindBugs FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题.有了静态分析工具,就可以在不实际运行程序的情况对软件进行分 ...

  8. win7 加域开机自动登录域用户

    解决办法:1.本地管理员帐户登录到本机.点击左下角的“开始”,在运行中输入“regedit”,点击确定 2.弹出“注册表编辑器”,找到下面的路径:[HKEY_LOCAL_MACHINE\SOFTWAR ...

  9. Map的基本用法(Java)

    package home.collection.arr; import java.awt.Window.Type; import java.util.ArrayList; import java.ut ...

  10. iOS 重写UITableViewCell之动态获取label文字的宽度进行布局

    #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @pr ...