6

Ich erstelle eine Android-App, die eine Art Stop-Motion-App ist, die effizient Bilder auch während der Bewegung aufnehmen soll. Ich wollte eine sehr niedrige Verschlusszeit und eine hohe Blende einstellen, um bessere Bilder zu erzielen, besonders wenn die Kamera in Bewegung ist. Einige Antworten auf den Stapelüberlauf legen jedoch nahe, dass Verschlusszeit und Blende nicht eingestellt werden können (Bitte korrigieren Sie mich, wenn ich falsch liege) . Ich benutze keine Kameraabsicht, sondern ein Kameraobjekt mit startPreview, gefolgt von setCameraParams und takePicture.Was sind einige der Android-Kamera API-Parameter Optimierungen für die effiziente Aufnahme von Bildern, wenn die Kamera vom Benutzer bewegt wird?

Was sind die anderen Kamera-Parameter in Android API, die ich einstellen konnte, um es genau für Kamera in Bewegung effizient zu machen? Ich setze SCENE_MODE_SPORTS und versuche auch, FOCUS_MODE_CONTINUOUS_PICTURE zu setzen (was zum Testen aber nicht in meiner Kamera unterstützt wird). Hier

+0

Gute Frage - Ich frage mich, ob dies mit angemessener Qualität möglich ist, vor allem in Anbetracht der Verzerrung, wenn eine Android-Kamera bewegt wird. Nach einem Kommentar hier wird die Verzerrung durch eine Art von Weitwinkelkorrektur verursacht: http://android.stackexchange.com/questions/44062/video-recording-distorts-vertical-lines – NoBugs

Antwort

5

ist ein Link zu dem Teil des Android-Kamera-API, die Sie brauchen: http://developer.android.com/reference/android/hardware/Camera.Parameters.html

Es ist in Kamera-Parameter, die Sie nennen wie:

mCamera = camera; 
    Camera.Parameters params = mCamera.getParameters(); 
    params.setRotation(getCameraOrientation()); 
    params.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO); 
    params.setFlashMode(Camera.Parameters.FLASH_MODE_ON); 
    mCamera.setParameters(params); 

Die Dinge, die Sie wirklich zu sein scheinen interessiert sind in:

setExposureCompensation(int value) 
setColorEffect(String value) 
setAutoExposureLock(boolean toggle) 
getExposureCompensation() 

vergessen Sie nicht die automatische Belichtung zu entsperren, wenn Sie es :)

verwenden möchten

Sie sollten es auch auf Autofokus einstellen, um die Bilder zu machen, wie ich es in meinem Beispiel getan habe, und Flash wird auch helfen, obwohl das länger zwischen den Bildern dauern wird.

1

Leider ist es spät, aber vielleicht für andere

So stellen Sie Blende/Verschlusszeit/iso hilfreich sein:

Camera.Parameters params = camera.getParameters();

params.set ("Modus", "m");

Parametersatz ("Blende", "28"); // kann sein 28 32 35 40 45 50 56 63 71 80 bei Standardzoom

Parametersatz ("Verschlusszeit", 9); // hängt von der Kamera ab, z. 1 bedeutet am längsten

params.set ("iso", 200);