Wie stelle ich die Kameraauflösung in Android mit OpenCV ein?

Ich versuche, eine App für Android zu entwickeln, und ich würde unkomprimierte Bilder mit einer möglichst hohen Auflösung von der Kamera erhalten müssen. Ich habe es mit rawCallback und postviewCallback von takePicture versucht, aber sie funktionieren nicht.

Im Moment versuche ich mit OpenCV (Version 2.4), VideoCapture zu verwenden, aber ich stecke in der Standardeinstellung 960x720 fest, die für das, was ich brauche, schlecht ist. und mein Handy, ein Samsung Galaxy S3, kann theoretisch bis zu 8 Mpx (3.264 × 2.448 für Bilder und 1.920 × 1.080 für Videos, laut Wikipedia) liefern. VideoCapture.set (Highgui.CV_CAP_PROP_FRAME_WIDTH / HEIGHT, eine Zahl) bewirkt, dass die Kamera ein schwarzes Bild zurückgibt, soweit ich es gefunden habe.

Gibt es eine Möglichkeit, eine höhere Auflösung zu erzielen, entweder über OpenCV oder mit der Android-API, ohne sie zu komprimieren?

Es tut mir wirklich leid, wenn dies schon einmal gefragt wurde. Ich habe tagelang gesucht und nichts gefunden.

Vielen Dank für Ihre Zeit!

EDIT: Obwohl es nicht genau das ist, wonach ich gefragt habe, habe ich festgestellt, dass es eine Möglichkeit gibt, etwas sehr Ähnliches zu tun: Wenn Sie mit setPreviewCallback einen OnPreviewCallback für die Kamera einstellen, erhalten Sie die Rohbilddaten von der Kamera (zumindest im S3 arbeite ich mit). Ich lasse es hier, falls jemand es in Zukunft nützlich findet.

BEARBEITEN: Eine Teillösung wird in einer Antwort unten erklärt. Um zusammenzufassen,

vc.set(Highgui.CV_CAP_PROP_FRAME_WIDTH, desiredFrameWidth);
vc.set(Highgui.CV_CAP_PROP_FRAME_HEIGHT, desiredFrameHeight);

funktioniert unter bestimmten Bedingungen; Bitte sehen Sie unten für weitere Details.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage