Como definir a resolução da câmera no Android com o OpenCV?

Estou tentando desenvolver um aplicativo para Android e precisaria obter imagens não compactadas com uma resolução o mais alta possível da câmera. Eu tentei rawCallback e postviewCallback do takePicture, mas eles não estão funcionando.

Agora eu estou tentando com o OpenCV (versão 2.4) usando VideoCapture, mas estou preso no padrão 960x720, que é pobre para o que eu preciso; e meu celular, um Samsung Galaxy S3, é capaz de fornecer, teoricamente, até 8Mpx (3.264 × 2.448 para imagens e 1.920 × 1.080 para vídeo, de acordo com a Wikipedia). VideoCapture.set (Highgui.CV_CAP_PROP_FRAME_WIDTH / HEIGHT, some number) faz com que a câmera retorne uma imagem preta até onde eu encontrei.

Existe alguma maneira de obter uma resolução mais alta, seja por meio do OpenCV ou com a API do Android, sem compactar?

Eu realmente sinto muito se isso foi perguntado antes; Eu tenho procurado por dias e não encontrei nada.

Obrigado pelo seu tempo!

EDIT: Embora não seja exatamente o que eu estava perguntando, descobri que há uma maneira de fazer algo muito semelhante: se você definir um OnPreviewCallback para a câmera, usando setPreviewCallback, você obtém os dados da imagem bruta da câmera (pelo menos no S3 estou trabalhando com). Deixo aqui caso alguém ache útil no futuro.

EDIT: uma solução parcial é explicada em uma resposta abaixo. Resumindo,

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

trabalha sob algumas condições; por favor, veja abaixo para mais detalhes.

questionAnswers(2)

yourAnswerToTheQuestion