初识halcon
来源:互联网 发布:家用网络摄像机哪个好 编辑:程序博客网 时间:2024/04/28 09:42
一直都是使用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
- 初识Halcon
- 初识halcon
- 初识Halcon
- 初识Halcon
- 初识Halcon
- 初识Halcon
- 初识halcon
- Halcon学习(一) 初识Halcon HDevelop下载安装
- HALCON
- halcon : ::
- HALCON
- 【Halcon】Halcon笔记
- 【Halcon】Halcon笔记
- MvTec HALCON
- 初識Halcon
- Halcon標定板規格
- HALCON Documentation
- HALCON measure_pairs
- 跟我学VMM testbech (10)---实战 MP2991
- Windows mobile 菜单(Menu Bar) 更改解决方案
- 哈哈
- 试着开始开发基于JSF2的Html5组件包
- IT人到底有没有持续而广泛的发展空间?
- 初识halcon
- 遍历文件目录
- OpenGVS程序最顶层控制逻辑
- awk 用法
- C++学习摘要之三:继承和派生
- VB.NET2005函數大全(转自网络)
- 转帖LBS的两篇文章。
- 学习C#的网站
- C++学习摘要之三