私はAndroid用のアプリを開発しようとしており、カメラからできるだけ高い解像度で圧縮されていない画像を取得する必要があります。 takePictureのrawCallbackとpostviewCallbackを試しましたが、動作していません。OpenCVでAndroidのカメラ解像度を設定する方法は?
今、私はVideoCaptureを使ってOpenCV(バージョン2.4)を使っていますが、デフォルトの960x720に固執しています。サムスンギャラクシーS3という私の携帯電話は、理論的には、Wikipediaによれば、最大8Mpx(写真の場合は3,264×2,448、ビデオの場合は1,920×1,080)を提供することができます。 VideoCapture.set(Highgui.CV_CAP_PROP_FRAME_WIDTH/HEIGHT、いくつかの番号)は、私が見つけた限り黒い画像を返します。
OpenCVまたはAndroid APIを使用して圧縮せずに、より高い解像度を得る方法はありますか?
これが以前に尋ねられた場合は本当に申し訳ありません。私は何日も探していて、何も見つけられませんでした。
ありがとうございました!
編集:私が求めていたものではありませんが、非常に似たようなことがあることがわかりました。setPreviewCallbackを使用してカメラのOnPreviewCallbackを設定すると、カメラ(私は一緒に作業しているS3で少なくとも)。誰かがそれが将来有用であると思った場合に備えて、私はここに残します。
EDIT:以下の解答で部分解を説明します。要約すると、
vc.set(Highgui.CV_CAP_PROP_FRAME_WIDTH, desiredFrameWidth);
vc.set(Highgui.CV_CAP_PROP_FRAME_HEIGHT, desiredFrameHeight);
はいくつかの条件で動作します。詳細は下記をご覧ください。