OpencvAndroidSDK:在运行时在前置摄像头和后置摄像头之间切换?

时间:2013-04-29 07:31:45

标签: android opencv

我有这个NativeCameraView:

<org.opencv.android.NativeCameraView
            android:id="@+id/tutorial1_activity_native_surface_view"
            android:layout_width="350px"
            android:layout_height="350px"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            opencv:camera_id="front" />

通过将opencv:camera_id="front"更改为opencv:camera_id="back",我可以在设计时从前置摄像头更改为后置摄像头(我可以将其称为编译时间吗?!)
但现在我需要在运行时间切换它们吗?有可能吗?

1 个答案:

答案 0 :(得分:4)

在活动类中访问以下变量:

private CameraBridgeViewBase mOpenCvCameraView; //exists as is in opencv samples
private int mCameraId = 0; //add this one

以下方法将切换视图。诀窍是禁用摄像机视图,设置摄像机索引(在我的情况下0和1都有效),然后重新启用摄像机视图。

private void swapCamera() {
    mCameraId = mCameraId^1; //bitwise not operation to flip 1 to 0 and vice versa
    mOpenCvCameraView.disableView();
    mOpenCvCameraView.setCameraIndex(mCameraId);
    mOpenCvCameraView.enableView();
}