使用 IDS uEye 网络摄像头制作快照 - 黑色图像
Making snapshot with IDS uEye webcam - black image
我有一个 IDS UEye 网络摄像头,想通过 uEyeDotNet.dll(版本 1.6.4.2)拍摄快照。
目前我正在使用这段代码。
var camera = new Camera();
camera.Init(_deskCamInfo.UEyeId);
camera.Memory.Allocate();
camera.Acquisition.Capture();
Thread.Sleep(500);
int s32MemID;
camera.Memory.GetActive(out s32MemID);
Bitmap image;
camera.Memory.ToBitmap(s32MemID, out image);
var converter = new ImageConverter();
var imageData = (byte[])converter.ConvertTo(image, typeof(byte[]));
当我将我的代码与 Thread.Sleep(500)
一起使用时,我按预期获得了快照并且一切正常。但是如果我删除 Thread.Sleep(500)
我会得到一个黑色图像,我真的不知道为什么。
但我不想为每个快照等待 500 毫秒,并且想在没有它的情况下解决这个问题。
在我的原始代码中,我检查了 uEye 方法的每个结果值,并且总是成功。刚刚删除了这个检查,因为所有 if 语句都很难阅读。
我解决了这个问题。也许其他人遇到了同样的问题,它可以提供帮助。
第二次猜测解决方案非常简单。我不得不改变
status = camera.Acquisition.Capture();
至
status = camera.Acquisition.Capture(DeviceParameter.Wait);
然后相机会等待您拍摄图像。
我有一个 IDS UEye 网络摄像头,想通过 uEyeDotNet.dll(版本 1.6.4.2)拍摄快照。
目前我正在使用这段代码。
var camera = new Camera();
camera.Init(_deskCamInfo.UEyeId);
camera.Memory.Allocate();
camera.Acquisition.Capture();
Thread.Sleep(500);
int s32MemID;
camera.Memory.GetActive(out s32MemID);
Bitmap image;
camera.Memory.ToBitmap(s32MemID, out image);
var converter = new ImageConverter();
var imageData = (byte[])converter.ConvertTo(image, typeof(byte[]));
当我将我的代码与 Thread.Sleep(500)
一起使用时,我按预期获得了快照并且一切正常。但是如果我删除 Thread.Sleep(500)
我会得到一个黑色图像,我真的不知道为什么。
但我不想为每个快照等待 500 毫秒,并且想在没有它的情况下解决这个问题。
在我的原始代码中,我检查了 uEye 方法的每个结果值,并且总是成功。刚刚删除了这个检查,因为所有 if 语句都很难阅读。
我解决了这个问题。也许其他人遇到了同样的问题,它可以提供帮助。
第二次猜测解决方案非常简单。我不得不改变
status = camera.Acquisition.Capture();
至
status = camera.Acquisition.Capture(DeviceParameter.Wait);
然后相机会等待您拍摄图像。