Я пытаюсь разработать приложение для Android, и мне нужно будет получить несжатые фотографии с разрешением как можно выше от камеры. Я попробовал takePicture rawCallback и postviewCallback, но они не работают.
Прямо сейчас я пытаюсь использовать OpenCV (версия 2.4) с помощью VideoCapture, но я застрял в 960x720 по умолчанию, что плохо для того, что мне нужно; и мой телефон, Samsung Galaxy S3, может предоставить теоретически до 8Mpx (3,264 × 2,448 для изображений и 1,920 × 1080 для видео, согласно Википедии). VideoCapture.set(Highgui.CV_CAP_PROP_FRAME_WIDTH/HEIGHT, некоторое число) заставляет камеру вернуть черное изображение, насколько я нашел.
Есть ли способ получить более высокое разрешение либо через OpenCV, либо с помощью API Android без сжатия?
Мне очень жаль, если это было задано раньше; Я искал дни и ничего не нашел.
Спасибо за ваше время!
EDIT: Хотя это не совсем то, что я просил, я обнаружил, что есть способ сделать что-то очень похожее: если вы установите OnPreviewCallback для камеры, используя setPreviewCallback, вы получите необработанные данные изображения с камеры (по крайней мере, в S3, с которым я работаю). Я оставляю его здесь, если кто-то найдет его полезным в будущем.
EDIT: частичное решение объясняется в ответе ниже. Подводя итог,
vc.set(Highgui.CV_CAP_PROP_FRAME_WIDTH, desiredFrameWidth);
vc.set(Highgui.CV_CAP_PROP_FRAME_HEIGHT, desiredFrameHeight);
работает при некоторых условиях; более подробно см. ниже.