c# dialogresult 选择文件_c#与halcon编程,视觉开发必知必会~

halcon作为机器视觉开发主流工具,掌握c#与halcon的混合编程,只是进入视觉开发领域大门的第一步。

1.新建一个Windows窗体应用程序,命名为Demo

ad56715e2078188c73ae72785432b472.png

2.添加Halcon组件

右键引用 -> 选择添加引用:

dddc6abdf550226615583029c4eb9af2.png

 选择浏览:

86153d23529525ab94ffb0cf12edeede.png

在你自己Halcon的安装路径下,找到bin/dotnet35/,选择halcondotnet.dll文件,点击确定:

e283f9f7e39021bd601f144e5978bd41.png

确定后,会在解决方案下引用列表中找到我们刚刚添加的halcon组件:

b0a93c3e1430fd63998e651ef9053420.png

3.更改框架
右键工程 -> 属性,打开属性设置:2103d031d852943fb6236bab812c3763.png
这里单击目标框架下拉框,如果目标框架是.NET Framework 4 Client Profile,需点击下拉框将其改为.NET Framework 4。否则可能会报错:warning MSB3253: 未能解析引用的程序集“halcondotnet”,因为它对不在当前目标框架“.NETFramework,Version=v4.0,Profile=Client”中的“System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”具有依赖关系。请删除对不在目标框架中的程序集的引用,或考虑重新确定项目的目标。096ebdc6613b88d37ee267be5a253e7b.png
4.添加halcon的窗口控件
右键工具箱 -> 选择项:e3fd379692d4a0658b90ead1eed79548.png
弹出一个选择工具项项对话框,点击浏览按钮:

b9f6a916c8d7750b5b15b6904c8e577a.png

在你自己halcon安装目录下的/bin/dotnet35/文件加下,添加halcondotnet.dll组件:

be9f2907fe3e1586c640e64c750ec949.png

然后.NET Framework组件中就会自动添加上HSmartWindowControl和HWindowControl两个组件,点击确定:

3d0de615aa573d2ce48c6ae4dcc14246.png

此时,工具箱 - > 常规选项中就会出现两个添加的halcon窗口控件:

17131f28a7f9444cac7447e4ff45fff1.png

这里,我们选择HWindowControl窗口控件在主窗口中拖出一个窗口,同时添加两个按键:

85203b668b7f31fcdf53109b296d21fb.png

5.下一步,我们从Hdevelp中导出已经写好的Halcon程序。

这里用halcon中自带的例程lines_gauss为例:

在HDevelop中打开程序lines_gauss,点击文件 -> 导出,按照下图的配置选项进行选择:

dc0d1f3d79399dd5b97d13cd0f074f08.png

右键Demo工程,添加 -> 现有项,找到刚刚我们导出的lines_gauss.cs文件,并点击确定:

 b096f34644b7c4e78b455915a720ac18.png

6.打开lines_gauss.cs文件,修改部分代码如下:

public void RunHalcon(HTuple Window, HObject srcImage){    hv_ExpDefaultWinHandle = Window;    action(srcImage);} private void action(HObject ho_srcImage){    // ho_Angio.Dispose();    // 注释掉这两句    // HOperatorSet.ReadImage(out ho_Angio, "angio-part");    ho_Angio = ho_srcImage;}

7.打开主程序,添加引用,using HalconDotNet; 同时添加以下的按钮事件代码:

private HObject ho_srcImage = null;private HDevelopExport m_objHalcon = new HDevelopExport();private void m_btn_Load_Click(object sender, EventArgs e){    HTuple hv_Height = 0, hv_Width = 0;    openFileDialog1.InitialDirectory = System.AppDomain.CurrentDomain.ToString();    openFileDialog1.Filter = "(*.png,*.jpg,*.bmp,*.jpeg)|*.png;*.jpg;*.bmp;*.jpeg|All files (*.*)|*.*";    openFileDialog1.FilterIndex = 1;    openFileDialog1.RestoreDirectory = true;     if (openFileDialog1.ShowDialog() == DialogResult.OK)    {        HOperatorSet.ReadImage(out ho_srcImage, (HTuple)openFileDialog1.FileName);        HOperatorSet.ClearWindow(hWindowControl1.HalconWindow);        HOperatorSet.GetImageSize(ho_srcImage, out hv_Width, out hv_Height);        HOperatorSet.SetPart(hWindowControl1.HalconWindow, 0, 0, hv_Height - 1, hv_Width - 1);        HOperatorSet.DispObj(ho_srcImage, hWindowControl1.HalconWindow);          }}private void m_btn_Run_Click(object sender, EventArgs e){    if (ho_srcImage != null)    {        m_objHalcon.RunHalcon(hWindowControl1.HalconWindow, ho_srcImage);    }}

8.保存并运行程序,点击加载图片按钮,图像处理按钮

选择C:\Users\Public\Documents\MVTec\HALCON-17.12-Progress\examples\images下的angio-part.png图片:

bc070a3a0a0ba93d32621735bbfdef29.png

点击图像处理按钮,最终的处理结果如下图所示:

3bb3bcddcecc25e584915c61325bcd4f.png

注意:文章来源于网络博客https://blog.csdn.net/IntegralforLove/article/details/84872496

6932e29f56227c4e3b9d65f07af6493a.gif End 6932e29f56227c4e3b9d65f07af6493a.gif

声明:部分内容来源于网络,仅供读者学习、交流之目的。文章版权归原作者所有。如有不妥,请联系删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值