2017-11-26 10 views
0

나는 현재 안드로이드의 얼굴 인식에 대한 openCV의 자바 예제를 실험 중이다. 그러나 카메라로 만든보기는 미러 이미징이 아닙니다. android:screenOrientationreverseLandscape으로 설정하려고했지만 작동하지 않았습니다. 나는 이것을 달성하려고 노력하고 싶다, 어떤 제안? 레이아웃OpenCV JavaCameraView 프론트 카메라를 미러 이미지 (안드로이드)에 표시하는 방법은 무엇입니까?

코드 :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<org.opencv.android.JavaCameraView 
    android:id="@+id/fd_activity_surface_view" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:screenOrientation="reverseLandscape" 
    /> 

는 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으로 줄어 듭니다.