开启左侧

[HALCON文档] 总结新手学习开发Halcon程序的几个问题点

  [复制链接]
绝地武士 发表于 2016-10-10 17:14:05 | 显示全部楼层 |阅读模式
鉴于很多刚学的同学学习需要,本文已经解除隐藏,造福大家,我们一起努力加油!

1.对Halcon基础类型认识不清楚?
一味的为了项目去学习Halcon,直接跳过基础知识到后面的核心部分。会导致一个问题,就是对基础操作的认识发生错误,导致发生一些很低级的错误。
比如对图像处理流程的顺序不清楚,导致什么呢?
请看下面代码:
  1. read_image (Image, 'clip')
  2. bin_threshold (Image, Region)
  3. select_shape (Region, SelectedRegions, 'area', 'and', 150, 99999)
复制代码
咋一看,没有什么错误。确实也没有什么错误,但是这个结果是你想要的结果吗???仔细分析下代码可以看出,阈值后没有进行连通性分析,导致筛选的是整个区域,有什么意义呢???

2.常识性变量混用错误
该错误产生的原因是类型混乱,导致图形类型和控制的混淆使用。还有就是哪些是Image类型、哪些是Region类型、哪些是XLD类型,一开始不需要你时刻在心里提醒自己,但是要做到与上句代码的对应关系。
我们一定要知道Halcon算子签名,那就是算子名称(图形输入:图形输出:控制输入:控制输出),知道了这个,那么混乱应该不至于了!

3.抄写错误
变量名称在Halcon中第一次出现的时候会自动声明并且赋值,这个时候如果你抄写少些了一个字符或者多写了一个字符,和之前的变量不一样的时候就会产生错误。导致使用了未声明的变量类型。这个在使用中要细心去发现和注意。
  1. read_image (Image, 'clip')
  2. bin_threshold (Image1, Region)
复制代码
上面这个代码,读取图片后接收的变量是Image,但是下面进行阈值的时候就变成了Image1了,肯定没有初始化对不对???

4.外部函数封装的形参与实参?
我们拿gen_line这个函数来讲解,实际调用的时候是这样:
  1. gen_line (Line, 50, 50, 45, 200, 'region')
复制代码
但是函数的声明是这样的
  1. gen_line( : Line : Row, Col, Angle, Length, RegionOrXLD : )
复制代码
那么除开Line这个输出的图形变量,其他部分都形参参数都被上面的实际参数替换了,这个时候实际的变化是这样的:
  1. Row:=50
  2. Col:=50
  3. Angle:=45
  4. Lenght:=200
  5. RegionOrXLD:='region'
复制代码

这样,上面这个形参就被实际数值给赋值了,而在gen_line函数里面都是用的形参去实现的。
使用中这些所以的形参都会被实际参数替换,是不是很简单。

5.参数输入错误
一般情况下,如果没有复杂的数据,通过Tab按出来的自动补全输入的数据一般是正确的,但是代码和变量增加后可能显示的就不是你的设置的变量,这个时候输入的可能要求是控制类型的数组或者图形变量数组,而你输入的是单变量就会导致计算出现错误,这个时候会提示12xx、13xx、14xx、15xx这样的错误代码,这样的错误代码可以在https://www.51halcon.com/thread-1025-1-1.html找到最全的解释,全部都是摘自官方错误文档,常用的有中文解释,比如1201是控制类型数据异常,01代表是第一位参数,这里的位置都是从1开始的,具体需要了解算子的结构(输入图形:输出图形:输入控制:输出控制)这样的去对应就可以定位到具体的错误!

相关帖子

fancheng 发表于 2016-10-20 10:41:41 | 显示全部楼层
总结的很好,对于初学的人来说很有帮助。
beansong 发表于 2016-10-30 21:27:36 | 显示全部楼层
好幾個問題我之前都忽略來了,感謝分享
zzuanning 发表于 2017-5-3 09:06:45 | 显示全部楼层
length是吗,看的很仔细:)
Hanson 发表于 2017-5-3 15:55:37 | 显示全部楼层
正在求知的道路上,望楼主扶持!
Hanson 发表于 2017-5-3 15:59:01 | 显示全部楼层
正在求知的道路上,望楼主扶持!
Hanson 发表于 2017-5-3 16:00:42 | 显示全部楼层
正在求知的道路上,望楼主扶持!
Hanson 发表于 2017-5-3 16:02:11 | 显示全部楼层
正在求知的道路上,望楼主扶持!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表