PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Logitech C910 OpenCV und Autofokus



DanielSan
16.02.2013, 15:23
Hi,

ich arbeite mit Matlab und OpenCV. Weiss jemand wie ich den Autofokus der Kamera deaktivieren kann?

Ich dachte an sowas wie:


capture = cvCreateCameraCapture(wcs);
cvSetCaptureProperty(capture,CV_CAP_PROP_FOCUS,0);

Aber das gibt es leider nicht.

Ich habe schon gegoogelt und die OpenCV Doku aufgesucht. Leider bisher ohne erfolg.

Danke
Gruß Daniel

malthy
16.02.2013, 16:03
Hallo,

ich kann dir nur sagen wie das unter Matlab mit der Image Acquisition Toolbox funktionieren würden, keine Ahnung ob dir das hilft. Ich arbeite mit Logitech QickCam Pro 9000 Kameras. Da würde es so ablaufen:




% erstmal videoobjekt erzeugen
vid = videoinput('winvideo', 1, 'RGB24_640x480')

Summary of Video Input Object Using 'Logitech QuickCam Pro 9000'.

Acquisition Source(s): input1 is available.

Acquisition Parameters: 'input1' is the current selected source.
10 frames per trigger using the selected source.
'RGB24_640x480' video data to be logged upon START.
Grabbing first of every 1 frame(s).
Log data to 'memory' on trigger.

Trigger Parameters: 1 'immediate' trigger(s) on START.

Status: Waiting for START.
0 frames acquired since starting.
0 frames available for GETDATA.

% die eigenschaften des objets anzeigen
vid_src = getselectedsource(vid);

set(vid_src)
General Settings:
Tag

Device Specific Properties:
BacklightCompensation: [ {on} | off ]
Brightness
Contrast
Exposure
ExposureMode: [ {auto} | manual ]
Focus
FocusMode: [ {auto} | manual ]
FrameRate: [ {30.0000} | 25.0000 | 20.0000 | 15.0000 | 10.0000 | 5.0000 ]
Gain
HorizontalFlip: [ {off} | on ]
Saturation
Sharpness
VerticalFlip: [ {off} | on ]
WhiteBalance
WhiteBalanceMode: [ {auto} | manual ]

% jetze einfach mal ein preview vom stream starten
preview(vid)

% autofocus ausschalten
set(vid_src, 'FocusMode', 'manual')

% autofocus wieder einschalten
set(vid_src, 'FocusMode', 'auto')

Vielleicht hilft's dir weiter.

Gruß
Malte

DanielSan
16.02.2013, 17:42
Hi,

in Matlab bekomme ich das hin. Da die IAT aber zu langsam ist, hab ich das ganze mit einer S-Function und OpenCV nochmal neu gemacht. Das läuft soweit gut und ist auch schneller. Leider stört der Autofocus etc.

Trotzdem danke für die Idee!

malthy
16.02.2013, 18:04
Okay, sorry. Dachte mir schon dass es vermutlich nicht weiterhilft.