《zw版·ddelphi与halcon系列原创教程》Halcon的短板与delphi
【《zw版·delphi与Halcon系列原创教程》
Halcon的短板与delphi
看过《delphi与Halcon系列》blog的网友都知道,笔者对Halcon一直是非常推崇的,简直是天下第一,无所不能。
的确,Halcon是目前蓝星上最强的图像库,也许某些国家军用卫星的图像库,精度会高一点,这个只能猜测。
Halcon毕竟只是图像库而已,作为开发平台,与专业的delphi、vs相比,还是有很大差距的。
有经验的用户,特别是从事二次开发的外包团队,采用Halcon。有时总会有些束手束脚,力不从心的感觉,而且,问题往往不是出现在技术瓶颈,而是一些简单、常用的细节上面。
Halcon第一定位,始终是图像工程方面,提供一站式解决方案,这点,无疑是行业第一。
具体而言,作为平台级的图像开发工具,Halcon存在以下问题:
- :: HDevelop对于用户自定义变量支持很差,赋值只能采用专用的assign函数,不支持左侧等号‘=’模式,做过解释器、编译系统的人都知道,左侧等号‘=’赋值,看起来简单,其实非常复杂繁琐,变化万千。Halcon很聪明,采用了delphi的独特的双字符':=',作为等号,大大简化了内核相关模块的开发。这些,对于偏重于工程定位Halcon,影响不大,不过对于大型图像系统,不仅代码量增加不少,架构设计也复杂很多。
- :: HDevelop本身对于多个模块、大型的图像应用,支持很差,v12官方Change明确指出,Halcon,对于大型的定义是‘500’行代码。500行?Halcon一个delphi的接口程序,源码就超过7w行,500行显然是无法完成一个复杂系统的。
- :: Halcon虽然提供了com、net控件,支持c、vb、delphi等二次开发,但对于最简单方便,与内置脚本天生一体的delphi,却支持最差,不仅输出代码,没有delphi格式,连文档、demo方面,都尽量简化,官方貌似只提供了一个Matching示例程序,就万事大吉了。
- :: bug、调试,非常麻烦,连免费的python都比不上,更不用说专业的delphi、vs了,当然对于500行内的‘一对一’应用模块而言,这些还可以接受。
- :: 页面窗口布局,类似matlab,当然图像系统,本身布局极其复杂,matlab、ps、cad、maya、blender,3ds,各自不同,不过,Hacon还在采用delphi7时代的多窗口模式,而不是现代的dock设计,这点就有些反人类了,matlab很像在v2010版以前,就改成了dock模式。(附图,是笔者推荐的HDevelop窗口布局)
不过,Halcon的这些短板,刚好是delphi、c+vs的强项,双方互补性非常强。
实际工程设计当中,往往把Halcon作为刀锋,处理专业的技术难点、瓶颈,而delphi作为整个系统架构的设计、数据的维护等等。
所以,delphi与Halcon,的确是图像工程的神级搭配。
【《zw版·delphi与halcon系列原创教程》,网址,cnblogs.com/ziwang/】
《zw版·ddelphi与halcon系列原创教程》Halcon的短板与delphi的更多相关文章
- 《zw版·delphi与Halcon系列原创教程》THOperatorSetX版hello,zw
<zw版·delphi与Halcon系列原创教程>THOperatorSetX版hello,zw 下面介绍v3版的hello,zw. Halcon两大核心控件,THImagex.THOpe ...
- 《zw版·delphi与halcon系列原创教程》zw版_THOperatorSetX控件函数列表 v11中文增强版
<zw版·delphi与halcon系列原创教程>zw版_THOperatorSetX控件函数列表v11中文增强版 Halcon虽然庞大,光HALCONXLib_TLB.pas文件,源码就 ...
- 《zw版·delphi与halcon系列原创教程》zw版_THImagex控件函数列表
<zw版·delphi与halcon系列原创教程>zw版_THImagex控件函数列表 Halcon虽然庞大,光HALCONXLib_TLB.pas文件,源码就要7w多行,但核心控件就是两 ...
- 《zw版·delphi与halcon系列原创教程》hello,zw
<zw版·delphi与halcon系列原创教程>hello,zw 按惯例,第一个程序是‘hello’ 毕竟,Halcon是专业的图像库,所以我们就不用纯文本版的,来一个专业版.Halco ...
- 【《zw版·Halcon与delphi系列原创教程》Halcon图层与常用绘图函数
[<zw版·Halcon与delphi系列原创教程>Halcon图层与常用绘图函数 Halcon的绘图函数,与传统编程vb.c.delphi语言完全不同, 传统编程语言,甚至cad ...
- 《zw版Halcon与delphi系列原创教程》发布说明
<zw版Halcon与delphi系列原创教程>发布说明 zw转载的<台湾nvp系列halcon-delphi教程>,虽然很多,不过基本上都是从cnc.数控角度的demo.. ...
- 【《zw版·Halcon与delphi系列原创教程》 zw_halcon人脸识别
[<zw版·Halcon与delphi系列原创教程>zw_halcon人脸识别 经常有用户问,halcon人脸识别方面的问题. 可能是cv在人脸识别.车牌识别方面的投入太多了. 其实,人脸 ...
- 《zw版·Halcon-delphi系列原创教程》 zw版-Halcon常用函数Top100中文速查手册
<zw版·Halcon-delphi系列原创教程> zw版-Halcon常用函数Top100中文速查手册 Halcon函数库非常庞大,v11版有1900多个算子(函数). 这个Top版,对 ...
- 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数017·point点函数
<zw版·Halcon-delphi系列原创教程> Halcon分类函数017·point点函数 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“**”,替换:“p ...
随机推荐
- 解决父类加载iframe,src参数过大导致加载失败
原文:解决父类加载iframe,src参数过大导致加载失败 <iframe src="*******.do?param=****" id="leftFrame&qu ...
- docker:从 tomcat 容器连接到 mysql 容器
docker 中的容器互联是一个较为复杂的话题,详细内容将在后续章节中介绍. 续前 2 个章节的内容,我们创建了一个 mysql 容器和一个 tomcat 容器,可以使用 「docker ps」来查看 ...
- route命令(转)
Linux系统的route命令用于显示和操作IP路由表(show / manipulate the IP routing table).要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或 ...
- 如何解决SQLServer占CPU100%
文章目录 遇到的问题 使用SQLServer Profiler监控数据库 SQL1:查找最新的30条告警事件 SQL2:获取当前的总报警记录数 有哪些SQL语句会导致CPU过高? 查看SQL的查询计划 ...
- Java代码中执行Linux命令,亲测可用
前提需要知道怎么在linux怎么新建java文件和怎么编译,否则请先学其他知识!! import java.io.*;public class Test{ public static void mai ...
- 认识C和内存管理
认识C和内存管理 C程序内存空间分为下面5类: stack栈: 存放着局部变量和函数参数等数据,向下生长 (可读可写可执行) heap堆: 给动态分配内存使用,向上生长 (可读可写可执行) bss ...
- MVC项目实践,在三层架构下实现SportsStore-04,实现分页
SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...
- Java开发遇到的问题及解决方案
一.java.lang.OutOfMemoryError 问题:myeclipse 内存不足,又显示内存溢出等问题怎么回事?( java.lang.OutOfMemoryError: PermGen ...
- SpringMVC Map Model ModelMap 和 ModelAndView
代码: package com.gaussic.controller; import com.gaussic.model.AccountModel; import org.springframewor ...
- 第四篇 Integration Services:增量加载-Updating Rows
本篇文章是Integration Services系列的第四篇,详细内容请参考原文. 回顾增量加载记住,在SSIS增量加载有三个使用案例:1.New rows-add rows to the dest ...