zoukankan      html  css  js  c++  java
  • 《zw版·delphi与halcon系列原创教程》hello,zw

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

    按惯例,第一个程序是‘hello’
    毕竟,Halcon是专业的图像库,所以我们就不用纯文本版的,来一个专业版、Halcon图像版的hello程序。

    首先,记得在代码文件头部的模块引用"uses",当中,加入:HALCONXLib_TLB 模块名

    另外,在exe程序输出目录下,建立一个tmp子目录,这个目录是zw系列教程的统一输出目录。


    下面我们输入以下代码,建立v1版的hello子程序:hello_zw01

     1 procedure hello_zw01();
     2 var
     3 ximg:THImageX;
     4 begin
     5 ximg := THImageX.Create(nil);
     6 ximg.ReadImage('tmphello_zw.png');
     7 
     8 ximg.writeImage('png', 0, 'tmpzw01.png');
     9 ximg.writeImage('png',0, 'tmpzw02');
    10 
    11 FreeAndNil(ximg);
    12 end;

    源码说明:

     1 ,子程序名称:hello_zw01

    2-3,定义变量 ximg,类型是:THImageX;
    5 ,创建ximg变量, THImageX.Create(nil);
    6,读入图像文件, ximg.ReadImage('tmphello_zw.png');

    8, 保存图像文件,方法1,ximg.writeImage('png', 0, 'tmpzw01.png');
    9 ,保存图像文件,方法2,ximg.writeImage('png',0, 'tmpzw02');

    11 ,释放ximg变量内存空间

    【注意】

    源码第6行,读入图像文件, ximg.ReadImage('tmphello_zw.png');

    delphi版,与Halcon内置脚本、c、c#等版本语句有所不同:read_image(imgNam,ImageFileName) 

    Halcon内置脚本、c、c#版,‘图像读入’语句,带有下划线;

    另外,函数参数变量有两个,第一个imgNam,是图像文件载入后的内部变量名;第2个变量,ImageFileName,才是文件名

    源码第8行,第9行,都是‘图像保存’语句:WriteImage

    根据接口文件:HALCONXLib_TLB.pas源码,定义如下:

    procedure WriteImage(const Format: WideString; FillColor: OleVariant; FileName: OleVariant); safecall;

    变量说明: 

    Format,输出文件格式

    FillColor,填充颜色,一般为0

    FileName,输出文件名

    因为,Halcon在‘图像保存’语句:WriteImage当中,定义了图像格式,所以保存图像文件时,文件名可以省略后缀名称。

    源码第9行:

    ximg.writeImage('png',0, 'tmpzw02');

     ok,现在运行v1版,奇怪,居然出错,

    运行记得下载,并使用本文附带的配套图片文件,复制到tmp子目录下。

    附件文件 http://files.cnblogs.com/files/ziwang/hello_zw_pic.zip

    因为我们 的图像文件:tmphello_zw.png,是32位的,带alpha通道,与Halcon内部的有所不同。

    这点,在Halcon手册里面有特别说明,尤其是在使用c、c#、delphi进行控件模式开发时。

    你可以用photoshop,或者xnview等软件,取消图像的alpha通道,按24位保存,就可以了。

    现在我们修改源码第9行,改为

    ximg.ReadImage('tmphello_zw24.png');

    图像文件:hello_zw24.png,是24位格式的,再次运行

     ok,顺利执行,用xnview等看图软件,浏览tmp目录,会发现除:tmphello_zw.png,tmphello_zw24.png,两个原文件外

    多了两个新的图像文件:tmpzw01.png、tmpzw02.png

    【《zw版·delphi与halcon系列原创教程》,网址,cnblogs.com/ziwang/】

    QQ群 247994767(delphi与halcon) 【zw版《delphi与halcon系列原创教程》,网址,cnblogs.com/ziwang/ 】 QQ:2592439395(zw) , delphi+halcon,图像分析神级配置, 分分钟秒杀 c+opencv,python+opencv,c+matlab, 以及其他各种组合
  • 相关阅读:
    Linux安装zookeeper以及部署dubbo-admin
    springboot+layui+mybatis-plus的批量删除(批量修改)
    springboot打包jar与war包
    drf-books系列接口作业和分页器
    drf-过滤排序异常处理封装Response对象
    drf-认证权限频率
    drf-路由组件
    视图组件
    请求和响应
    Serializer和ModelSerializer
  • 原文地址:https://www.cnblogs.com/ziwang/p/4852069.html
Copyright © 2011-2022 走看看