2017-11-26 7 views
0

私は現在、アンドロイドの顔検出に関するopenCVのJavaの例を試しています。しかし、カメラで作成されたビューはミラーイメージングではありません。android:screenOrientationreverseLandscapeに設定しようとしましたが、動作しませんでした。私はこれを達成しようとしています、任意の提案?レイアウトのOpenCV JavaCameraViewフロントカメラを鏡像(アンドロイド)に表示するには?

コード:OpenCVの上

private CameraBridgeViewBase mOpenCvCameraView; 

をインスタンス

mOpenCvCameraView.setCameraIndex(1); 
mOpenCvCameraView.enableView(); 

のonCreate()メソッド

をロード
mOpenCvCameraView = findViewById(R.id.fd_activity_surface_view); 
mOpenCvCameraView.setCvCameraViewListener(this); 

mOpenCvCameraViewにはsetDisplayOrientation()メソッドが含まれておらず、setRotation(180)によって黒い表示が返されました。

+0

[CameraBridgeViewBase .CAMERA_ID_FRONT](https://docs.opencv.org/java/2.4.9/org/opencv/android/CameraBridgeViewBase.html#CAMERA_ID_FRONT)にカメラインデックスを設定してください。 –

+0

@AlexCohn、それでもミラーイメージは生成されません – SpencerChantler123

+0

mOpenCvCameraView.setScaleX(-1)を試してください –

答えて

1

ミラーを作るための最小限の変更は、あなたのCvCameraViewListener2に次のコードを追加することです:

public Mat onCameraFrame(CvCameraViewFrame inputFrame) { 
    Mat rgba = inputFrame.rgba(); 
    Core.flip(rgba, rgba, 1); 
    return rgba; 
} 

これが最も効率的な方法ではありませんが、おそらく許容できます。私のかなり弱いテスト装置では、FPSは7.17から7.15に減少します。

関連する問題