2017-04-21 169 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); 

,然後將相機等待,直到你可以拍攝圖像。

相關問題