2016-03-31 7 views
0

Ich entwickle eine einfache Anwendung, die eine Ximea Kamera steuert.
Um es zu tun, bietet AForge eine AForge.Video.ximea Bibliothek, die ziemlich gut funktioniert.
Ximea Framerate Parameter

Mein Problem hängt, wenn ich versuche, die Parameter der Ximea-Kamera einzurichten.

Für die Belichtung:

ximeaCamera.SetParam(CameraParameter.Exposure, (float)(55.55)); 

Alles funktioniert perfekt ...
Aber wenn ich versuche, auf einem anderen Parameter wie framerate (was sehr wichtig ist):

ximeaCamera.SetParam(CameraParameter.Framerate, 10); 

Die Raises Ausführung ein Fehler, der behauptet, dass die "Framerate" gültig ist, aber die "10" ungültig ist:
Fehlercode: 11, Nachricht: Ungültige Argumente geliefert

Hier ist die Video.Ximea Klassenimplementierung ich geprüft:
https://github.com/cureos/aforge/blob/master/Sources/Video.Ximea/XimeaCamera.cs

Und die XIMEA Dokumentation:
https://www.ximea.com/support/wiki/apis/XiAPI_Manual

Antwort

1

ich ein ähnliches Problem hatte. Soweit ich sagen kann, ist es aufgrund AForge eine alte API verwenden, das nicht Sie die acquisition timing mode to frame rate mode mit

xiSetParamInt(h,XI_PRM_ACQ_TIMING_MODE, XI_ACQ_TIMING_MODE_FRAME_RATE); 

Sobald diese Einstellung gesetzt erlaubt ist, können Sie die Framerate festlegen, aber das scheint nur zu eine gültige Option mit der neueren API (xiapi.dll) sein, während AForge die ältere m3api.dll verwendet.

Wenn der Bildfrequenzmodus nicht verwendet wird, wird die Kamerarahmenrate durch die Belichtungszeit festgelegt. Wenn Sie beispielsweise eine Belichtungszeit von 0,1 s einstellen, wird die Bildfrequenz auf 10 Hz eingestellt. Wenn Sie sie separat steuern wollen, dann könnte es etwas basteln, damit AForge mit der neueren API interagieren kann.