完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
` 本帖最后由 zhouyezuishuai 于 2021-7-30 11:35 编辑 如题,之前就遇到过这个问题,本来也是直接用NI VISION做视觉的,后来发现操作没那么简单,偶然的一个机会开始接触Haclcon,发现这软件做视觉真的是方便,后来就想着怎么跟labview做联动,调用其中的程序,在论坛找到了几个例子,但是对基础户稍微差点的朋友不是很好理解,所以这里贴一下我这里的过程。 此处以一个案例来讲解,找到图中黑色圆形区域的半径 图1是原图,图2是Halcon中计算到的圆形区域,程序很简单,就是先读取图片,然后阈值分割找出黑色区域,再根据面积取得黑色圆形区域,然后计算最小外接圆,半径就出来了 下面开始讲解Labview中如何调用Halcon中的程序来取得计算结果 Labview的VI截图如下,除了红圈内为属性节点,其他全部为调用节点, 构造器函数选择的dll文件路径在Halcon安装目录下,我电脑上路径为 C:Program FilesMVTecHALCON-18.05-Progressindotnet35hdevenginedotnet.dll, 然后按照该VI中的连线方式连线即可成功取得Halcon中的执行结果 接下来讲一下VI中的一些东西的意义,在本VI中,由于Haclcon中输出的控制变量结果为3个(圆的中心点X,Y坐标和半径大小),如果我们这里只取半径的话,其实程序框图中的FOR循环可以去掉,直接在Index输入3就可以只取半径,切记这里的Index顺序就是Halcon中控制变量的顺序,从1开始而非Labview中从0开始的下标。 在程序的最后一定要执行Dispose这个函数,否则该VI运行过程中的占用内存会持续累加,直到内存溢出 我最开始就没有执行这个,结果程序跑半个小时就内存溢出,然后尝试了各种方案,比如Halcon中执行完毕清除所有,但还是不行,最终还是发现在labview中执行Dispose这个函数才可以 还有一点,就是程序框图后面的GetCtrVarTuple的引用端一定要连的事Execute之后的引用,否则会报错 这种方式的优点就是可以利用Halcon在视觉处理方面的优势快速有效的实现结果,缺点就是目前我还没找到如何从Labview中输入参数给Halcon,所以这边调用的比较麻烦,labview中必须每次都把图片保存到相同的位置以供Halcon执行,两者之间的交互属于单向的,对某些情况下不太好处理,有知道怎么从Labview中传参数给Halcon的朋友还请指导一下,在下感激不尽! PS: 原图,Halcon程序,LabVIEW程序都在附件的文件夹中,执行时需要更改Halcon程序中的路径,本人电脑装的Halcon18.05 和Labview2018 `
Halcon与Labview联动开发.zip
(1.12 MB, 下载次数: 307
)
|
|
相关推荐
|
|
我是用在c#中把halcon的程序写成一个dll然后再调用dll的,这样可以随便设计参数
|
|
|
|
|
|
多谢楼主分享这些不错的学习资料,应该好好学习天天向上。
|
|
|
|
|
|
多谢楼主分享这些不错的学习资料,应该好好学习天天向上。
|
|
|
|
|
|
关于labview2024版本的lvanlys.dll出错的问题
1023 浏览 1 评论
1032 浏览 2 评论
1449 浏览 1 评论
1147 浏览 0 评论
新手求助,从示波器导出来csv类型的波形数据,怎么用labview读取csv文件还原波形,求助各位大佬,感谢感谢!!!
1637 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 12:17 , Processed in 0.497730 second(s), Total 51, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号