首页 技术 正文
技术 2022年11月11日
0 收藏 945 点赞 5,121 浏览 1335 个字

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

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

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

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

这样设计,非常专业,高效,当然,也比较复杂。
      实际图像工程中,往往是结合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');

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

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

同样一个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/】

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,947
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,473
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,286
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,102
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,734
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,769