怎么在Visual Studio 10.0中设置Halcon机器视觉

怎么在Visual Studio 10.0中设置Halcon机器视觉,第1张

开始做Halcon的上位机,选用Visual Studio 100平台。

C#

第一步:

Visual Studio 100设置引用HalconDotNetdll

01新建项目

02选择Visual C#

03修改文件名

04确认

第二步

Visual Studio 100设置引用HalconDotNetdll

01选择“解决方案资源管理器”

02选择“引用”,右键

03选择“添加引用”

第三步

Visual Studio 100设置引用HalconDotNetdll

01在添加引用选项卡选择浏览

02选择路径:X:\Program Files\MVTec\HALCON-100\bin\dotnet20

03选择“HalconDotNetdll”

04确认

第四步

Visual Studio 100设置引用HalconDotNetdll

01选择“工具箱”

02选择“所有工具”或任意工具控件,右键

03选择“选择项”

第五步

Visual Studio 100设置引用HalconDotNetdll

选择Halcon图像控件

Visual Studio 100设置引用HalconDotNetdll

还有VB的设置,如下图:

Visual Studio 100设置引用HalconDotNetdll

01选择项目名称

02点击显示全部文件,取消隐藏,就可以看到引用

03引用,邮件

04添加,之后的步骤和C#一样

Visual Studio 100设置引用HalconDotNetdll

选择工具控件,步骤和C#基本一样。

VB的第二张图,步骤如下

01选择“工具箱”

02选择“所有工具”或任意工具控件,右键

03选择“选择项”

04在“net framwork组件”的选项卡中,选择浏览

05出来的对话框中,选择X:\Program Files\MVTec\HALCON-100\bin\dotnet20

06选择“HalconDotNetdll”

07确认

08这时候的工具栏的控件是HWinwow 控件。

kamuixiao :

X:\Program Files\MVTec\HALCON-100\bin\dotnet20

路径下的无法使用,在net framework组件无法找到

X:\Program Files\MVTec\HALCON-100\bin\dotnet35

路径下的可用,在net framework组件下可以找到,并且在工具箱上能够找到并使用,但是功能无法实现,如下图

我不作其他动作,程序代码内容仅是运行时候读取一张,

在调试的时候能够运行,但读不到……楼主在VBNET环境下正常运行了吗?求解~

Visual Studio 100设置引用HalconDotNetdll

x8515618 :

定义错了

dim m_hWindow As Htuple '这是一个句柄,不是窗体控件

x8515618 :

Dim m_hWindow As Htuple = Nothing

kamuixiao :

谢谢楼上的建议,但是我试了下发现仍然不行,我觉得问题不是出在这里,不知道使用VBNET的各位有没有遇到过,反正我是没能正常实现过一次的,输出显示的错误情况如图:

Visual Studio 100设置引用HalconDotNetdll

x8515618 :

你只是读取了,都没有显示呢

灵峤 lencue :

你最开始新建项目的时候选择的“net框架”版本是多少的?net 20就用dotnet20文件夹,35就用dontnet35文件夹,你再查看一下,会不会是这个问题,看能不能解决。

irun999 :

请问楼主,用在VS2008中用C#读入一直比较大的的时候只是显示部分,如何解决?

灵峤 lencue :

dev_resize_window_fit_image(ho_Image, 0, 0, 300, 400);

用这个算子,在C#的programcs中可以用的,后面的300,400就是显示这个的大小的,会被缩放到这个比例。

irun999 :

请问在VS 2005 C# 处理视频,程序老是死掉,怎么办?视频无法实时显示。 是不是视频太大了,VS2005处理不够来?该怎么办?

灵峤 lencue :

采用C#的多线程,具体怎么使用,我还在学习中,要是有进展,再一起讨论。

好吧,我写漏了,但事实上我把显示补上,然后按照兄台所说修改定义后仍然没能成功!~附图:

Visual Studio 100设置引用HalconDotNetdll

irun999 :

今天下午发现视频无法显示是因为hdevelop导出程序的死循环函数里没有 HOperatorSetDispObj 显示函数。但是关闭程序就会出现vshostexe无响应。这个问题可能得多线程解决了。

可以用Halcon建立深度学习模型,并用到实际项目中。

流程大概是使用免费的 Halcon Deeplearing Label Tool制作模型后,导出成 hdl 文件,并在应用程序中用 ApplyDlClassifier 应用模型。

经过测试, ApplyDlClassifer 在第一次运行时,无论数据集有多大,执行时间在500ms左右(AMD 5800X + Nvidia P2200),能够明显感受到卡顿,而在第二次运行时,就感受不到卡顿。所以我考虑,在应用程序启动时,使用线程对模型进行预热。

预热听着高深,其实就是读取模型( ReadDlClassifier ) 并送入一张空白图。

下面演示我的做法:

21 封装一个自己的Application类

22 我将Halcon算子封装成一个单例类,并使用 getAlgorithmGlobalData 获得这个单例对象。 slotDoModelWarmUp 是这个单例类一个槽函数。

23 在 slotDoModelWarmUp 中开多线程,对模型进行预热。

我将Halcon深度学习算子要用到的变量封装成一个 context 结构体,放在单例类中。为了节约开销,我使用引用,直接获取这个单例对象。这样,在向线程中传参数时,需要一个 std::ref 。

线程函数如下:

classifierHandle 是一个引用变量,这使得我可以直接 *** 控单例类中的数据成员,而不是使用拷贝。

经过测试,在AMD 5800X + Nvidia P2200下,推理速度达到了1166ms。

在HAlCON开始执行程序,有以下步骤

1需要另起一行但不运行程序然后直接敲击回车,程序将被执行。若想在不运行程序的情况另起一行,shift+回车。

2 重置程序执行(重置变量)

程序中的变量一旦被赋值,其将一直保持该值。若想重置变量并重新执行程序,需首先通过菜单栏“执行”--“重置程序执行”来重置变量。

3 在图形窗口中只显示某一个图形变量

图形窗口左上角有“清空图形窗口”图标,清空图形窗口后,在图形窗口中单击右键,选择“显示”某一图形变量。前提是,该图形变量已经被赋值。

4 注释与取消注释快捷键

F4快速注释,F3取消注释。

5 在图形显示窗口中查看鼠标处信息

按Ctrl键,同时在图形显示窗口中移动鼠标,可以显示鼠标位置以及鼠标所在处的图像灰度值。

Halcon视觉软件的COM的研究,顶一下,

如果针对COM的应用,主要就是delphi和VB这些不可以直接使用halcon的导出软件的编程环境来应用,在halcon的下面有实际的VB以及delphi的例子,可以看看,主要的还是看其手册,目前该软件在国内的资料非常少,是属于相当前卫的行业的,多交流

以上就是关于怎么在Visual Studio 10.0中设置Halcon机器视觉全部的内容,包括:怎么在Visual Studio 10.0中设置Halcon机器视觉、性能优化——使用多线程加速Halcon深度学习算子、halcon怎么开始执行程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9846917.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存