【今更だけどandroid.hardware.Cameraを使う】Camera.Parametersの設定値 焦点距離と視野角(画角)

このエントリーを Google ブックマーク に追加
Pocket
[`yahoo` not found]

android.hardware.Cameraを使うことで、Android端末にあるカメラデバイスにアクセスして使うことができます。
android.hardware.Cameraは、現在では非推奨となっていますがOpenCV等ではまだまだ使われています。

Android端末に実装されているカメラデバイスは固有の性能があります。
そのため、ある端末では出来るのに別の端末では出来ないということが多々あります。
今回はCamera.Parametersの自動露出補正ロック機能に関連する設定値を説明します。
下記の実装はすべて前回までに作ったクラスを修正しています。

焦点距離と視野角(画角)

カメラデバイスには固有の焦点距離と視野角(画角)があります。
Camera.Parameters内にある焦点距離と視野角(画角)に関連するデータのキーは下記のとおりです。
focal-lengthカメラデバイスの焦点距離のキーです。
horizontal-view-angleカメラデバイスの水平視野角のキーです。
vertical-view-angleカメラデバイスの水直視野角のキーです。

焦点距離と視野角(画角)の取得

焦点距離はfloat getFocalLength()で取得できます。単位はミリメーターです。
また、視野角(画角)は水平角をfloat getHorizontalViewAngle()で、垂直角をfloat getVerticalViewAngle()で取得できます。単位は度です。


    private void updateCameraParameters() {
        Camera.Parameters parameters = mCamera.getParameters();
        Log.d(TAG, "FocalLength: " + parameters.getFocalLength());
        Log.d(TAG, "HorizontalViewAngle: " + parameters.getHorizontalViewAngle());
        Log.d(TAG, "VerticalViewAngle: " + parameters.getVerticalViewAngle());
        mCamera.setParameters(parameters);
    }