2013-06-18 20 views
7

Tôi chỉ cần biết về cách tôi có thể bắt đầu với điều này thực sự tôi cần phải mở máy ảnh gốc của Android bằng cách sử dụng opencv.Mở Máy ảnh gốc của Android bằng cách sử dụng OpenCV

Tôi có thể tìm tài liệu có liên quan hoặc bất kỳ tài liệu trợ giúp nào? Tôi đã thiết lập nhật thực của tôi làm việc với các dự án mẫu opencv!

Trả lời

15

Hãy xem các mẫu opencv được vận chuyển trong opencv/samples/android /, ở đó bạn sẽ có thể tìm thấy một vài ví dụ hay. Đây cũng là một liên kết đến các tài liệu hiển thị how to open the camera. Đừng quên yêu cầu quyền truy cập vào máy ảnh.

phiên bản ngắn, xem link để biết chi tiết đầy đủ: Thêm một bố cục:

<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" /> 

Init thủ tục:

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); 
} 

Thực hiện giao diện 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

thể bạn cũng nói làm thế nào để phát hiện một khu vực từ hình ảnh được chụp? – TharakaNirmana

+0

Vui lòng thêm câu hỏi này làm câu hỏi mới vì câu hỏi này không liên quan đến câu hỏi này. Đặc biệt vì đây là một chủ đề rộng. – Nicholas