《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’,不过实际应用当中,因为无法深度耦合,用的极少。

全部代码如下:

 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',,'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系列原创教程》THOperatorSetX版hello,zw的更多相关文章

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

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

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

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

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

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

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

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

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

    [<zw版·Halcon与delphi系列原创教程>Halcon图层与常用绘图函数 Halcon的绘图函数,与传统编程vb.c.delphi语言完全不同,     传统编程语言,甚至cad ...

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

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

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

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

  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. mac 终端乱码

    我系统是英文的 export LANG=en_US.UTF-8export LC_ALL=en_US.UTF-8 中文的 export LANG=zh_CN.UTF-8 export LANG=en_ ...

  2. Base64编码简介

      基本概念   Base64这个术语最初是在“MIME内容传输编码规范”中提出的.Base64不是一种加密算法,虽然编码后的字符串看起来有点加密的赶脚.它实际上是一种“二进制到文本”的编码方法,它能 ...

  3. About_AJAX

    Asynchronous JavaScript And XML (1)AJAX大多用于验证和分页: (2)首先要激活(对象): window.ActiveXObject(针对IE): window.X ...

  4. 读Thinking in java 4

    读tij4 ,生活中还是杂事太多,有时候就忘了最初买书来读的初衷,也没了刚开始激情了,为了督促下自己,好好看完一本书,不妨来写写读书笔记吧.

  5. Daily Scrum 10.24

    昨天我们的工作已经全面开始了,本来想等今天(25号)看那个燃尽图和燃速图能不能出来,结果还是没有,就先把我们的Task统计贴上来吧. 今天的Task统计: 至于燃尽图和燃速图的问题已经发老师邮件提问了 ...

  6. 链接后加"/"与不加"/"的区别

    1.http://www.abc.com/abc2.http://www.abc.com/abc/ 当Web服务器接收到对某个末尾不含斜杠的url请求时,例如“http://www.abc.com/a ...

  7. 网页mp3播放代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. in_array支持第三个参数,强制对数据类型检测

    in_array函数是判断数据中是否存在指定的内容了,对于这个函数用法非常的简单但在使用过程中会我发现有一些问题. 先介绍一下需求背景: 发票方式: 0=捐赠(不要问我为什么,历史原因) 1=对中寄送 ...

  9. A trip through the Graphics Pipeline 2011_06_(Triangle) rasterization and setup

    Welcome back. This time we’re actually gonna see triangles being rasterized – finally! But before we ...

  10. Laravel-5.1 ---- 将mews captcha整合到项目中!

    经过摸索,终于能在laravel 5.1中应用验证码了. 因为英语渣五水平,所以几乎没搜索到什么有用的,于是考虑在github上搜索验证码包! 提示: github上的package中往往会有使用说明 ...