C#和Halcon联合调用相机实时采集,出现HOperatorSet.OpenFramegrabber报错#8603: Interface library not available.

HalconDotNet.HOperatorException   HResult=0x80131600   Message=HALCON error #8603: Interface library not available. Check www.mvtec.com/download for additional interfaces in operator open_framegrabber   

报错原因:相应的程序中的debug目录下缺少DLL文件,将缺少的文件从Halcon中复制到程序的debug下就行。

我的debug文件

 大恒相机GigE接口的相机,我的另外调用hAcqGigEVision2.dll就不报错了

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
是的,可以通过VB.NET和Halcon联合编程来实现实时显示和采集。以下是一个简单的示例: 1. 首先,在VB.NET中创建一个Windows Forms应用程序。 2. 添加Halcon的引用。在“解决方案资源管理器”中右键单击“引用”,选择“添加引用”,然后选择“浏览”选项卡,找到Halcon所在的文件夹(通常在C:\Program Files\MVTec\HALCON-XX\bin\dotnet4)并选择“HalconDotNet.dll”文件。 3. 在VB.NET中添加Halcon的命名空间: ```vb Imports HalconDotNet ``` 4. 在窗体中添加一个PictureBox控件,用于显示图像。 5. 在窗体的Load事件中初始化Halcon引擎: ```vb HOperatorSet.OpenWindow(0, 0, PictureBox1.Width, PictureBox1.Height, _ PictureBox1.Handle, "visible", "", out winID) ``` 6. 在窗体中添加一个定时器控件,并设置其Interval属性为100(表示100毫秒)。 7. 在定时器的Tick事件中实现图像采集和显示: ```vb Dim img As HImage = Nothing ' 采集图像 HOperatorSet.GrabImageAsync(out img, cameraHandle, -1) ' 显示图像 HOperatorSet.DispObj(img, winID) img.Dispose() ``` 其中,cameraHandle是相机的句柄,可以使用Halcon的GrabData函数来打开相机并获取句柄。 注意,在显示图像之前,需要调用Halcon的OpenWindow函数打开一个窗口,并将其句柄传递给DispObj函数。如果没有打开窗口,将会出现HALCON error: HALCON error #1443: OpenWindow: window not found”误。 另外,由于Halcon的图像对象是托管对象,需要手动调用Dispose方法来释放内存。 8. 运行程序,即可实现实时显示和采集。 完整代码如下: ```vb Imports HalconDotNet Public Class Form1 Private winID As IntPtr Private cameraHandle As IntPtr Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load ' 初始化Halcon引擎 HOperatorSet.OpenWindow(0, 0, PictureBox1.Width, PictureBox1.Height, _ PictureBox1.Handle, "visible", "", out winID) ' 打开相机 HOperatorSet.OpenFramegrabber("GigEVision", 1, 1, 0, 0, 0, 0, _ "default", -1, "default", -1, "false", _ "default", "default", cameraHandle) ' 开始采集 HOperatorSet.GrabDataStart(cameraHandle, -1) ' 启动定时器 Timer1.Interval = 100 Timer1.Start() End Sub Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick Dim img As HImage = Nothing ' 采集图像 HOperatorSet.GrabImageAsync(out img, cameraHandle, -1) ' 显示图像 HOperatorSet.DispObj(img, winID) img.Dispose() End Sub Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing ' 停止采集 HOperatorSet.GrabDataStop(cameraHandle) ' 关闭相机 HOperatorSet.CloseFramegrabber(cameraHandle) ' 关闭窗口 HOperatorSet.CloseWindow(winID) End Sub End Class ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值