设为首页收藏本站
搜索
开启左侧

[资料] 总结新手学习开发Halcon程序的几个问题点

[复制链接]
IronMan 发表于 2016-10-10 17:14:05 | 显示全部楼层 |阅读模式

铂金VIP|主题 |帖子 |积分 3275

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类型,一开始不需要你时刻在心里提醒自己,但是要做到与上句代码的对应关系。

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函数里面都是用的形参去实现的。使用中这些所以的形参都会被实际参数替换,是不是很简单。



51Halcon.com 专注于机器视觉应用技术
fancheng 发表于 2016-10-20 10:41:41 | 显示全部楼层

部门经理|主题 |帖子 |积分 602

总结的很好,对于初学的人来说很有帮助。
51Halcon.com 专注于机器视觉应用技术
beansong 发表于 2016-10-30 21:27:36 | 显示全部楼层

正式员工|主题 |帖子 |积分 57

好幾個問題我之前都忽略來了,感謝分享
51Halcon.com 专注于机器视觉应用技术
vicky 发表于 2016-12-21 10:12:28 | 显示全部楼层

部门助理|主题 |帖子 |积分 492

初学者的福利来喽!
51Halcon.com 专注于机器视觉应用技术
回复

使用道具 举报

深圳华仔 发表于 2017-2-4 19:49:20 | 显示全部楼层

正式员工|主题 |帖子 |积分 67

总结的很好,谢谢
51Halcon.com 专注于机器视觉应用技术
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

关闭

论坛推荐上一条 /5 下一条

Halcon技术
在线咨询
咨询热线
15019223858

小黑屋|手机版|Archiver|51Halcon机器视觉 | 粤ICP备15095995号-2|粤公网安备44030602000670号|   |

GMT+8, 2017-2-20 12:22 , Processed in 0.025185 second(s), 13 queries , Gzip On, Redis On.

© 2001-2017 Comsenz Inc.

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