2013-04-29 121 views
1

我有這個NativeCameraView:OpencvAndroidSDK:在運行時在前置攝像頭和後置攝像頭之間切換?

<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",我可以從前置攝像頭改變在設計時相機背面(我可以把它編譯時間?!)
但現在我需要切換在運行時在它們之間?可能嗎?

回答

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(); 
} 
相關問題