2017-04-21 236 views
0

我有一个IDS UEye网络摄像头,并且想通过uEyeDotNet.dll(版本1.6.4.2)制作快照。使用IDS uEye网络摄像头拍摄快照 - 黑色图像

此刻我正在使用这段代码。

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语句。

回答

0

我解决了这个问题。也许别人有同样的问题,它可以提供帮助。

第二种猜测的解决方案非常简单。我不得不改变

status = camera.Acquisition.Capture(); 

status = camera.Acquisition.Capture(DeviceParameter.Wait); 

,然后将相机等待,直到你可以拍摄图像。

相关问题