2013-06-18 2 views
7

나는 이것을 실제로 어떻게 시작할 수 있는지 알고 싶습니다. 실제로 opencv를 사용하여 Android 네이티브 카메라를 열어야합니다.OpenCV를 사용하여 Android 네이티브 카메라 열기

어디서 관련 자료 나 도움 자료를 찾을 수 있습니까? opencv 샘플 프로젝트에서 일식을 설정했습니다!

답변

15

opencv/samples/android /에서 제공되는 opencv 샘플을 살펴보면 몇 가지 좋은 예제를 찾을 수 있습니다. 다음은 how to open the camera을 보여주는 문서 링크입니다. 카메라에 액세스 할 수있는 권한을 요청하는 것을 잊지 마십시오.

짧은 버전, 자세한 사항은 링크를 참조 : 추가 레이아웃 :

<org.opencv.android.JavaCameraView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:visibility="gone" 
    android:id="@+id/HelloOpenCvView" 
    opencv:show_fps="true" 
    opencv:camera_id="any" /> 

초기화를 절차 :

private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { 
    @Override 
    public void onManagerConnected(int status) { 
     switch (status) { 
      case LoaderCallbackInterface.SUCCESS: 
      { 
       Log.i(TAG, "OpenCV loaded successfully"); 
       mOpenCvCameraView.enableView(); 
      } break; 
      default: 
      { 
       super.onManagerConnected(status); 
      } break; 
     } 
    } 
}; 

@Override 
public void onResume() 
{ 
    super.onResume(); 
    OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback); 
} 

CVFrameListener2 인터페이스를 구현 :

private CameraBridgeViewBase mOpenCvCameraView; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    Log.i(TAG, "called onCreate"); 
    super.onCreate(savedInstanceState); 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
    setContentView(R.layout.HelloOpenCvLayout); 
    mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.HelloOpenCvView); 
    mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE); 
    mOpenCvCameraView.setCvCameraViewListener(this); 
} 

@Override 
public void onPause() 
{ 
    super.onPause(); 
    if (mOpenCvCameraView != null) 
     mOpenCvCameraView.disableView(); 
} 

public void onDestroy() { 
    super.onDestroy(); 
    if (mOpenCvCameraView != null) 
     mOpenCvCameraView.disableView(); 
} 

public void onCameraViewStarted(int width, int height) { 
} 

public void onCameraViewStopped() { 
} 

public Mat onCameraFrame(CvCameraViewFrame inputFrame) { 
    return inputFrame.rgba(); 
} 
+0

당신은 또한 말할 수 어떻게 캡처 된 이미지에서 영역을 감지 할 수 있습니까? – TharakaNirmana

+0

이 질문은이 질문과 관련이 없으므로 새로운 질문으로 추가하십시오. 특히 이것은 광범위한 주제이므로 특히 그렇습니다. – Nicholas

관련 문제