加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

如何在C#中调用Halcon导出的代码

(2012-12-07 19:29:51)
标签:

halcon

机器视觉

c语言

it

分类: G.工业技术
首先,我在从Halcon中导出C#代码时,外部函数,我没有导出,因为它所引用的外部函数挺多了。图中没有勾选东西。(不知道那些有什么用,知道的请指导下)
http://www.halconbbs.com/attachment/Fid_16/16_617_fc3bb08bf70fe01.png?46
 
然后建立C#工程,我在这里提醒大家的是,在建立的时候,目标框架是.NET Framework 4,但是建立完成后,在解决方案资源管理器空白处右击,选中属性时,目标框架显示的却是.NET Framework 4 Client
Profile,因此我们要在下拉框中,改为.NET Framework 4,不然在执行时会报错。(这个我也不太清楚原因)
http://www.halconbbs.com/attachment/thumb/Fid_16/16_617_634a2fed533dabe.png?117
 
http://www.halconbbs.com/attachment/thumb/Fid_16/16_617_c5e4cae0f814328.png?50
 
建立完成,引用“halcondotnet” ,然后添加一个button按钮,和一个HWinddow Control控件。至于如何添加引用和如何添加“HWinddow Control控件”。详见xiong023xiao发的帖子http://www.halconbbs.com/read.php?tid-178.html,虽然他最后写的那部分我没看懂,自己问人才搞定的。
打开导出的代码,发现,内容不多,就一个HDevelop Exprot类,类中就三个函数,以后我们只要调用公共函数public void RunHalcon(HTuple Window)就可以。复制这些代码。
http://www.halconbbs.com/attachment/thumb/Fid_16/16_617_8508db6b6debf38.png?24
 
双击button控件,打开后台代码,将复制的那个HDevelop Exprot类粘贴到 public partial class Form1 : Form里面,不可以放在private void button1_Click(object sender, EventArgs e)这个函数里
http://www.halconbbs.com/attachment/Fid_16/16_617_2e1a0f4297f30ed.png?6

好了,下面我们要做的就是在private void button1_Click(object sender, EventArgs e)这个事件中调用导出的函数,我们知道,导出的是个类,因此,要先产生一个类的实体,然后,调用实体中RunHalcon这个函数
private void button1_Click(object sender, EventArgs e)
{
HDevelopExport HD = new HDevelopExport();
HD.RunHalcon(hWindowControl1.HalconWindow);
}
一切搞定,程序成功执行!

最后,贴上程序执行的结果。
http://www.halconbbs.com/attachment/Fid_16/16_617_214049e5419522f.png?87


值得纪念的处子贴。真诚希望和大家交流!
 
有几点一起讨论的东西:

01.从Halcon中导出C#代码时的函数属性(楼主的第一张图),希望有高手解析一下;

02.引用“halcondotnet” 和如何添加引用和如何添加“HWinddow Control控件”在我的一个贴里讲到(附图)http://www.halconbbs.com/read.php?tid-309.html

03.楼主的例子中如果遇到了一些halcon的外部函数,那么不导出来的话,如何引用呢?
 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有