在Visual Studio中运行Halcon(C#版本)
在Visual Studio中运行Halcon(C#配置Halcon环境)
前言:
本文章记录了在VS中运行Halcon的各种坑,从零开始搭建一个VS的halcon项目,为经验贴。
一.创建VS项目和Halcon项目
VS选择Windows窗体应用(.NET Framework),如下图:
Halcon中写入最普通的读取图片代码即可,如下:
然后将halcon文件转化为C#文件。点击左上角的文件,选择导出语言,按如下配置即可:
二.配置环境
在Halcon的文件夹中,找到bin文件夹,如下:
选择dotnet35打开,然后复制halcondotnet.dll,如下:
在VS项目中,依次选择“WindowsFormsApp1—bin—Debug”,打开VS项目的配置文件夹。将halcondotnet.dll复制到该目录下。如下:
此处有三个坑:
1.上图中的windows开头的文件,是要运行VS后才会有的,不用担心;
2.有的教程会将halcon.dll也复制到这里,但是,halcon.dll不是C#编译的,所以C#的环境,无法打开该文件,会报错,不要引用该文件即可;
3.license文件也要复制到该处,但是我们本地halcon的文件夹中,license文件夹里只有一个txt文件,是无法正常使用的,需要下载通行证文件,将其放到该文件夹里(通行证文件每月更新,注意下载的日期)。
三.准备VS
首先,点击引用→添加引用,将halcondotnet.dll添加进来。如下:
注意:不要引用halcon.dll,否则会报错:请确保此文件可访问并且是一个有效的程序集或 COM 组件。如下:
之后,点击工具箱,右键“所有Windows窗体”,点击选择项。
然后点击“浏览”,将halcondotnet.dll引用进来:
之后找到HWidowControl
在窗体里放置,再放置一个button,如下:
四.运行
打开halcon生成的cs文件,找到action函数,将其复制下来(目前,整个文件里,有用的就是这个函数)
Form1窗口里的button,进入代码界面,
将action函数里的代码粘贴到此处,并将图片路径换成自己的图片。如下:
然后启动运行,但是点击button后,依然没有出现图片。这是因为我们没有加入显示代码,如下:
加入后,再次启动运行,点击button,显示出了图片。
over
编程到天明: 哦哦,好的
Loveumm: 已经解决了呢,估计是版本有问题,重新下载了就没问题了,谢谢作者。
编程到天明: 你这是直接复制的我的代码去运行的吗?还是你自己有改动了,还不行的话,私信发我吧。
Loveumm: 作者能帮忙看看这是为啥嘛
Loveumm: 错误使用 gather 输入参数太多。 出错 classreg.learning.treeutils.growTree (第 104 行) curvTest, interTest, useChisq, rsh, reproducible, verbose] = gather(... 出错 classreg.learning.impl.TreeImpl.makeFromData (第 800 行) classreg.learning.treeutils.growTree(... 出错 TreeBagger>localGrowTrees/loopBody (第 2672 行) impl = classreg.learning.impl.TreeImpl.makeFromData(... 出错 internal.stats.parallel.smartForSliceout (第 174 行) [slice{:}] = loopbody(iter, S); 出错 TreeBagger>localGrowTrees (第 2579 行) internal.stats.parallel.smartForSliceout(NTrees, @loopBody, useParallel, RNGscheme); 出错 TreeBagger/growTrees (第 784 行) localGrowTrees(NumTrees, useParallel, RNGscheme, args); 出错 TreeBagger (第 622 行) bagger = growTrees(bagger,NumTrees,'Options', parallelOptions, 'nprint', nprint); 出错 RF (第 13 行) ens = TreeBagger(60, X, y, 'Method', 'regression', 'OOBPredictorImportance', 'on');