2017-04-21 1 views
0

Ich habe eine IDS UEye Webcam und möchte einen Schnappschuss über die uEyeDotNet.dll (Version 1.6.4.2) machen.Making Snapshot mit IDS uEye Webcam - schwarzes Bild

Im Moment benutze ich dieses Stück Code.

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[])); 

Wenn ich meinen Code mit den Thread.Sleep(500) verwende ich den Schnappschuss zu bekommen wie erwartet, und alles funktioniert. Aber wenn ich die Thread.Sleep(500) entferne, bekomme ich ein schwarzes Bild und ich weiß wirklich nicht warum.

Aber ich möchte nicht 500ms für jeden Snapshot warten und möchte dieses Problem ohne es lösen.

In meinem ursprünglichen Code überprüfe ich jeden Ergebniswert von den uEye-Methoden und ich bekomme immer einen Erfolg. Ich habe diese Überprüfungen einfach entfernt, weil es mit allen if-Anweisungen schwer zu lesen ist.

Antwort

0

Ich löste das Problem. Vielleicht hat jemand anderes das gleiche Problem und es kann helfen.

Zweitens vermutete die Lösung war wirklich einfach. Ich hatte

status = camera.Acquisition.Capture(); 

zu

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

zu ändern und dann die Kamera wartet, bis Sie ein Bild erfassen kann.

Verwandte Themen