• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Matlab 中以分数显示结果 - 中国的孩子发布时间:2022-07-18
下一篇:
MATLAB 之 App designer 小白学习(二) - 挽年_Sonny发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap