《zw版·delphi与Halcon系列原创教程》THOperatorSetX版hello,zw
2015-10-02 18:31
344 查看
《zw版·delphi与Halcon系列原创教程》THOperatorSetX版hello,zw
下面介绍v3版的hello,zw。
Halcon两大核心控件,THImagex、THOperatorSetX控件。
THImagex控件效率极高,可以视为内部数据交换模式,但与标准的Halcon函数有所差异,建议有经验的用户使用。
THOperatorSetX控件,采用类似仿真的模式,向Halcon模块提供脚本指令,由Halcon系统处理后,生成结果数据,再回传给delphi、c等开发系统。指令与Halcon完全一致,便于初学者掌握。
我们已经学过THImagex控件,现在介绍如何使用THOperatorSetX控件,编写:hello,zw
通常教程,THOperatorSetX控件,都是与THWindowX可视化控件,配合使用。
不过THWindowX需要初始化,配置,对于初学者而言,不太适合,再者,图像分析,结果主要是输出的图像文件,通常是多个图像文件,采用xnview等看图软件更加实用、方便,所以,我们依然采用图像文件的模式。
不过实际图像工程中,因为Halcon的绘图函数line、circle等,对于THWindowX更加方便,因此往往是结合THImagex、THWindowX(通过THOperatorSetX控件)一起使用。
此外,vc、vb、delphi等二次控件开发模式,除利用com、net两大核心控件,THImagex、THOperatorSetX控件外。
Halcon还通过了另外一种hdevenginex(hdev引擎)模式,这种模式类似shell,在Halcon系统外,加了一层运行界面层,可以直接调用hdevelop的脚本文件‘hdev’,不过实际应用当中,因为无法深度耦合,用的极少。
全部代码如下:
因为是v3版本的hello了,所以做了些增强。
【源码说明】
第10行,xset.getImageSize (img, w, h);
获取图像宽度w、高度h注意,变量w、h,必须是 OleVariant类型,Variant、integer都不行。
第12行,xset.Rgb1ToGray(img,img2);
图像变换,转换我灰度图
第16,17行,释放img变量所占内存,出错,很奇怪,所以用注释
16 //FreeAndNil(img);FreeAndNil(img2); 无法释放img的内存
17 //img.Dispose();//c# 有Dispose释放方法,delphi版没有
c、c#版图像控件有.Dispose方法,释放内存,delphi版没有,
奇怪,难道是自动释放,或者这个是delphi版内存泄露的罪魁祸首
有时间,用专业的内存分析软件,检测一下
【《zw版·delphi与halcon系列原创教程》,网址,cnblogs.com/ziwang/】
下面介绍v3版的hello,zw。
Halcon两大核心控件,THImagex、THOperatorSetX控件。
THImagex控件效率极高,可以视为内部数据交换模式,但与标准的Halcon函数有所差异,建议有经验的用户使用。
THOperatorSetX控件,采用类似仿真的模式,向Halcon模块提供脚本指令,由Halcon系统处理后,生成结果数据,再回传给delphi、c等开发系统。指令与Halcon完全一致,便于初学者掌握。
我们已经学过THImagex控件,现在介绍如何使用THOperatorSetX控件,编写:hello,zw
通常教程,THOperatorSetX控件,都是与THWindowX可视化控件,配合使用。
不过THWindowX需要初始化,配置,对于初学者而言,不太适合,再者,图像分析,结果主要是输出的图像文件,通常是多个图像文件,采用xnview等看图软件更加实用、方便,所以,我们依然采用图像文件的模式。
不过实际图像工程中,因为Halcon的绘图函数line、circle等,对于THWindowX更加方便,因此往往是结合THImagex、THWindowX(通过THOperatorSetX控件)一起使用。
此外,vc、vb、delphi等二次控件开发模式,除利用com、net两大核心控件,THImagex、THOperatorSetX控件外。
Halcon还通过了另外一种hdevenginex(hdev引擎)模式,这种模式类似shell,在Halcon系统外,加了一层运行界面层,可以直接调用hdevelop的脚本文件‘hdev’,不过实际应用当中,因为无法深度耦合,用的极少。
全部代码如下:
procedure hello_zw03(); var xset:THOperatorSetX; img,img2:IHUntypedObjectX; w,h:OleVariant; begin xset:=THOperatorSetX.create(nil); with mwin do begin xset.readImage (img, 'tmp\hello_zw24.png'); xset.getImageSize (img, w, h); xset.Rgb1ToGray(img,img2); xset.writeImage(img2,'png',0,'tmp\hello_zw30.png') end; FreeAndNil(xset); //FreeAndNil(img);FreeAndNil(img2); 无法释放img的内存 //img.Dispose();//c# 有Dispose释放方法,delphi版没有 end;
因为是v3版本的hello了,所以做了些增强。
【源码说明】
第10行,xset.getImageSize (img, w, h);
获取图像宽度w、高度h注意,变量w、h,必须是 OleVariant类型,Variant、integer都不行。
第12行,xset.Rgb1ToGray(img,img2);
图像变换,转换我灰度图
第16,17行,释放img变量所占内存,出错,很奇怪,所以用注释
16 //FreeAndNil(img);FreeAndNil(img2); 无法释放img的内存
17 //img.Dispose();//c# 有Dispose释放方法,delphi版没有
c、c#版图像控件有.Dispose方法,释放内存,delphi版没有,
奇怪,难道是自动释放,或者这个是delphi版内存泄露的罪魁祸首
有时间,用专业的内存分析软件,检测一下
【《zw版·delphi与halcon系列原创教程》,网址,cnblogs.com/ziwang/】
相关文章推荐
- 《zw版·delphi与halcon系列原创教程》zw版_THOperatorSetX控件函数列表 v11中文增强版
- 《zw版·delphi与halcon系列原创教程》zw版_THImagex控件函数列表
- Delphi使用过程中的几个技巧
- 《zw版·delphi与halcon系列原创教程》hello,zw
- zw版_Halcon图像库delphi接口文件
- 《zw版Halcon与delphi系列原创教程》发布说明
- Delphi环境的搭建
- zw版【转发·台湾nvp系列Delphi例程】HALCON DirectShow (Delphi Prism)
- zw版【转发·台湾nvp系列Delphi例程】HALCON HImage与Bitmap格式转换
- zw版【转发·台湾nvp系列Delphi例程】.NET调用HALCON COM控件内存释放模式
- zw版【转发·台湾nvp系列Delphi例程】HALCON HWindow Overlayer 1
- zw版【转发·台湾nvp系列Delphi例程】HALCON DirectFile
- zw版【转发·台湾nvp系列Delphi例程】HALCON DirectShow
- zw版【转发·台湾nvp系列Delphi例程】Delphi 使用 HALCON库件COM控件数据格式转换
- zw版【转发·台湾nvp系列Delphi例程】HALCON AddNoiseWhite
- zw版【转发·台湾nvp系列Delphi例程】HALCON CheckDifference
- zw版【转发·台湾nvp系列Delphi例程】HALCON BinThreshold
- zw版【转发·台湾nvp系列Delphi例程】HALCON HighpassImage
- zw版【转发·台湾nvp系列Delphi例程】HALCON Histogram
- zw版【转发·台湾nvp系列Delphi例程】HALCON Component Histogram