开启左侧

急待解决,相机拍照只能拍一张照片

[复制链接]
343012090 发表于 2019-3-31 14:44:52 | 显示全部楼层 |阅读模式
本人按照网上视频上说的,自己也买了一个相机,写好代码后,发现只可以拍一张照片,我想知道如果在界面上点拍摄,点一下拍一下是不是用HOperatorSet.GrabImage(out ho_Image, hv_AcqHandle);这个算子,我用了但是只可以拍一次,
  1. private void button5_Click(object sender, EventArgs e)
  2. {
  3.      timer1.Enabled = false;
  4.      HOperatorSet.OpenWindow(0, 0, hWindowControl1.Width, hWindowControl1.Height, hWindowControl1.HalconWindow, "", "", out hv_WindowHandle);
  5.      HDevWindowStack.Push(hv_WindowHandle);
  6.      HOperatorSet.GenEmptyObj(out ho_Image);
  7.      ho_Image.Dispose();
  8.      HOperatorSet.GrabImage(out ho_Image, hv_AcqHandle);        
  9.      HOperatorSet.DispObj(ho_Image, HDevWindowStack.GetActive());
  10. }
复制代码

无标题.png
绝地武士 发表于 2019-3-31 17:36:39 | 显示全部楼层
GrabImage就是同步采集一帧图片,如果想连续采图,可以开子线程用while循环进行抓取显示即可!
 楼主| 343012090 发表于 2019-3-31 17:53:48 | 显示全部楼层
绝地武士 发表于 2019-3-31 17:36
GrabImage就是同步采集一帧图片,如果想连续采图,可以开子线程用while循环进行抓取显示即可! ...

用WHILE好像是在连续采集时才用到吧,我这是要受点击数标事件控制的,在界面上我点击一下拍照,就拍一张,然后我在用这张图进行图像处理,也不需要一直拍,
chenying 发表于 2019-3-31 18:51:19 | 显示全部楼层
ho_Image.Dispose();
很有可能是这行代码造成的,注释掉,之后再试试。C#中很多Dispose()之后基本就代表之前New的是无效的,已经自动释放了!
haseop 发表于 2019-4-1 16:40:58 | 显示全部楼层
chenying 发表于 2019-3-31 18:51
ho_Image.Dispose();
很有可能是这行代码造成的,注释掉,之后再试试。C#中很多Dispose()之后基本就代表之 ...

Thanks
chenying 发表于 2019-4-1 18:32:48 | 显示全部楼层

搞定了?
nsj 发表于 2019-6-4 17:07:02 | 显示全部楼层
如果相机有C#的SDK和sample,最好是自己照着sample写一个,halcon的控制相机采集图像有时候不稳定。
gullee6 发表于 2019-7-15 11:15:44 | 显示全部楼层
加油,初学者啊
fellbird 发表于 2019-8-21 19:48:05 | 显示全部楼层
我也遇到过,就是这一行没加
ho_Image.Dispose();

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表