我正在嘗試爲Android開發一個應用程序,並且我需要從相機獲得分辨率儘可能高的未壓縮圖片。我試圖takePicture的rawCallback和postviewCallback,但它們不起作用。如何使用OpenCV在Android中設置攝像頭分辨率?
現在,我使用VideoCapture的OpenCV(2.4版本)很努力,但我卡在默認960x720,這是可憐我需要什麼;而我的手機,三星Galaxy S3,理論上能夠提供高達8Mpx(根據維基百科,圖片爲3,264×2,448,視頻爲1,920×1,080)。 VideoCapture.set(Highgui.CV_CAP_PROP_FRAME_WIDTH/HEIGHT,某個數字)使攝像機返回一個黑色圖像,就我所知。
有沒有什麼辦法,以獲得更高的分辨率,無論是通過OpenCV的或與Android API,無需壓縮?
我真的很抱歉,如果這已問過;我一直在尋找幾天,而我一無所獲。
謝謝你的時間!
編輯:雖然它不完全是我問的,我發現有一種方法可以做非常相似的事情:如果您設置相機的OnPreviewCallback,使用setPreviewCallback,您可以從相機(至少在我正在使用的S3中)。我留在這裏以防有人在將來發現它有用。
編輯:的部分解決方案將在下面的答案說明。綜上所述,
vc.set(Highgui.CV_CAP_PROP_FRAME_WIDTH, desiredFrameWidth);
vc.set(Highgui.CV_CAP_PROP_FRAME_HEIGHT, desiredFrameHeight);
在某些條件下工作;請參閱下面的進一步細節。