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

本文是《zw版·Halcon与delphi系列原创教程》的一部分,详细介绍了Halcon如何使用图层和绘图函数,强调其与传统编程语言的区别。Halcon的绘图基于图层和对象模式,颜色和样式在显示时决定,而非绘制时。通过实例代码展示了在同一图层上使用不同参数绘制同一圆形对象的不同效果。最后,强调了在Halcon二次开发中,图像处理的变量类型匹配的重要性。
摘要由CSDN通过智能技术生成

【《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/】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值