首页 >> 大全

使用halcon提供的OpenFramegrabber方法访问各种工业相机

2024-01-10 大全 32 作者:考证青年

目前业内流行的相机除相机以外都有提供给更兼容的动态链接库,虽然说自带的GigE接口能兼容一般GigE接口的相机但是对于较低版本的来说导出来的外部程序可能无法打开相机,就比如我使用的版本的导出C#程序后出现无法打开相机切卡死的情况。

如果你的版本较高,完全可以使用GigE接口。 如果你的版本较低,可以使用以下步骤(以下举例海康相机的低版本打开方式):

1、进入海康威视的安装目录

2、进入对应版本的文件夹

_用工业相机读取数据_工业相机开发

3、复制.dll到安装目录下的 bin > x64-win64(对应电脑的操作系统)

4、找到 接口,连接相机可行后导出代码即可

以下演示一个C#+访问相机的Demo:

窗口设计:

代码:

public partial class Form1 : Form{//相机句柄HTuple hv_AcqHandle = null;//halcon窗口句柄HTuple handle;//单采集的图像HObject image = null;//抓取图像的线程Thread brabT;//线程开关bool isRun = true;public Form1(){InitializeComponent();handle = hWindowControl1.HalconWindow;}#region but事件相关//打开相机private void button1_Click(object sender, EventArgs e){openCam();if (hv_AcqHandle == null){return;}brabT = new Thread(brabImage);//开启线程并挂起它brabT.Start();brabT.Suspend();}//开始采集private void button2_Click(object sender, EventArgs e){if (brabT != null){//继续执行线程brabT.Resume();}}//停止采集private void button3_Click(object sender, EventArgs e){if (brabT != null){//暂停线程brabT.Suspend();}}//单采集private void button4_Click(object sender, EventArgs e){HOperatorSet.GrabImage(out image, hv_AcqHandle);HOperatorSet.DispImage(image, handle);}//当窗口关闭时private void Form1_FormClosing(object sender, FormClosingEventArgs e){if (brabT != null){isRun = false;//brabT.Join();//继续执行线程//brabT.Resume();终止多余线程brabT.Abort();}}#endregion#region 相机相关//抓取图片线程private void brabImage(){HTuple w, h;HObject ho_Image;while (isRun){try{HOperatorSet.GrabImage(out ho_Image, hv_AcqHandle);if (ho_Image != null){HOperatorSet.GetImageSize(ho_Image, out w, out h);HOperatorSet.SetPart(handle, 0, 0, h, w);HOperatorSet.DispImage(ho_Image, handle);//显示玩之后释放图片ho_Image.Dispose();}}catch (Exception){MessageBox.Show("相机已断开,请重新连接!");Thread.Sleep(3000);openCam();}}}private void openCam() {//释放相机句柄HOperatorSet.CloseAllFramegrabbers();try{//连接相机HOperatorSet.OpenFramegrabber("MVision", 1, 1, 0, 0, 0, 0, "progressive", 8,"default", -1, "false", "auto", "GEV:00D23303857", 0, -1, out hv_AcqHandle);MessageBox.Show("相机连接成功!");}catch (Exception){MessageBox.Show("相机连接失败!");}}#endregion}

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了