初识halcon

一直都是使用opencv进行机器视觉方面的开发,但是opencv开发有很多不足的地方,都不是说opencv做得不好,但是opencv没有IDE,有时调参数时编译很多次才得到满意的结果,这点我觉得不是很好,我用过ni vision,里面有开发就简单一点,当然代码量其实差不多,但是前期的测试会节省大量时间。基于这个原因我找了halcon,其实知道这个软件已经有一些时间,不过一直没有使用,原因就是想训练一下自己的手写能力(这个原因比较无聊,其实是halcon价值不菲),不过项目实在进度比较紧张,只好用用halcon,反正我就是检测好参数,至于以后要不要用他生成的程序以后再说。

      
       halcon支持多个平台,我就找最简单的windows的平台的开发工具,安装时选择不支持sse2的,只是P3和K8以前的CPU不支持sse2的指令集(本人电脑肯定支持),只是考虑一下用户的问题(因为不清楚是不是编译的过程有所不同,保险为上)。
 
      网上关于halcon资料极少,少得可怜。只能靠自己看里面的例子和英文文档,进度颇慢。语法上支持C,C++,VB等,一般的流程是先用halcon做好了图像的处理部分,然后导出成其它语言的文件。再开其它开发工具进行开发,这部分其实和opencv没有什么区别。
 
       语法方面,类似于VB的语法,赋值方面就好像pascle了。一般的处理流程是这样的:
 
dev_open_window(0,0,-1,-1,black,WindowID)
read_image(Die,'die3')
threshold(Die,Brightregion,128,255)
shape_trans(Brightregion,ROI,'rectangle2')
reduce_domain(Die,ROI,DieROI)
threshold(DieROI,RawSegmentation,0,50)
fill_up_shape(Rawsegmentation,Wires,'area',1,100)
opening_circle(Wires,BallRegion,15.5)
connection(BallRegion,Balls)
select_shape(Balls,FinalBalls,'circularity','and',0.85,1.0)
 
      先加载一个图片到窗口,然后进行图像处理。时间到了,以后有机会再写。
Halcon标定流程
 
摄像机分两种,一种是面扫描摄像机(Area Scan Camera),一种是线扫描摄像机(Line Scan Camera)。准确来说,叫摄像机系统比较正确。两者的区别我也提一提吧,有些同学可能不知道,所谓的面扫描摄像系统是指可以通过单纯曝光取得面积影像,而线扫描摄像机,必须利用运动速度才能取得影像。
 
两种不同的摄像系统由于成像的过程有区别,所以标定的过程也有区别,这里仅讨论面扫描摄像系统。流程如下:
 
1、初始摄像机参数:
startCamPar:=[f,k,Sx,Sy,Cx,Cy,NumCol,NumRow]
f   焦距
k  初始为0.0
Sx 两个相邻像素点的水平距离
Sy 两个相邻像素点的垂直距离
Cx、Cy 图像中心点的位置
NumCol NumRow图像长和宽
 
2、caltab_points读取标定板描述文件里面描述的点到X[],Y[],z[],描述文件由gen_caltab生成。
 
3、fin_caltab找到标定板的位置
 
4、find_marks_and_pose 输出标定点的位置和外参startpose
 
5、camera_calibration输出内参和所有外部参数
 
到第五步时,工作已经完成了一半,计算出各个参数后可以用map_image来还原形变的图像或者用坐标转换参数将坐标转换到世界坐标中。
 

本文出自 “jonsoft” 博客,请务必保留此出处http://juwen.blog.51cto.com/135311/88531

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

听海拉拉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值