2015-10-04 86 views
0

我試圖通過單擊屏幕來獲得我的ROI。這是發生錯誤的部分。運行應用程序時CvException on OpenCV4Android

@Override 
 
    public Mat onCameraFrame(CvCameraViewFrame inputFrame) { 
 
     Mat rgba = inputFrame.rgba(); 
 
     Mat roi_mat = new Mat(); 
 

 
     if (startX!=0 && endX!=0){ 
 
      //Toast.makeText(this, "start:"+start_point+" end:"+end_point, Toast.LENGTH_SHORT).show(); 
 
      Core.rectangle(rgba,start_point,end_point,border_colour,0,8, 0); 
 
      roi_rect = new Rect(startX,startY,(endX-startX),(endY-startY)); 
 
      Mat roi_mat_ref = new Mat(rgba,roi_rect); 
 
      roi_mat_ref.copyTo(roi_mat); 
 
      //rgba.copyTo(roi_mat); 
 

 
     } 
 
     return rgba; 
 
    }

一切進展順利。但是當我想要獲得ROI時,它會顯示一個錯誤。

10-04 20:19:18.754 6794-6859/com.example.tew.roi E/cv::error()﹕ OpenCV Error: Assertion failed (0 <= _rowRange.start && _rowRange.start <= _rowRange.end && _rowRange.end <= m.rows) in cv::Mat::Mat(const cv::Mat&, const cv::Range&, const cv::Range&), file /home/reports/ci/slave_desktop/50-SDK/opencv/modules/core/src/matrix.cpp, line 284

10-04 20:19:18.755 6794-6859/com.example.tew.roi E/org.opencv.core.Mat﹕ Mat::n_1Mat__JIIII() caught cv::Exception: /home/reports/ci/slave_desktop/50-SDK/opencv/modules/core/src/matrix.cpp:284: error: (-215) 0 <= _rowRange.start && _rowRange.start <= _rowRange.end && _rowRange.end <= m.rows in function cv::Mat::Mat(const cv::Mat&, const cv::Range&, const cv::Range&)

10-04 20:19:18.755 6794-6859/com.example.tew.roi W/dalvikvm﹕ threadid=11: thread exiting with uncaught exception (group=0x40fbf258)

10-04 20:19:18.756 6794-6859/com.example.tew.roi E/AndroidRuntime﹕ FATAL EXCEPTION: Thread-3348

CvException [org.opencv.core.CvException: cv::Exception: /home/reports/ci/slave_desktop/50-SDK/opencv/modules/core/src/matrix.cpp:284: error: (-215) 0 <= _rowRange.start && _rowRange.start <= _rowRange.end && _rowRange.end <= m.rows in function cv::Mat::Mat(const cv::Mat&, const cv::Range&, const cv::Range&) ]

at org.opencv.core.Mat.n_Mat(Native Method)

at org.opencv.core.Mat.(Mat.java:676)

at com.example.tew.roi.MainActivity.onCameraFrame(MainActivity.java:154)

at org.opencv.android.CameraBridgeViewBase.deliverAndDrawFrame(CameraBridgeViewBase.java:387)

at org.opencv.android.JavaCameraView$CameraWorker.run(JavaCameraView.java:346)

at java.lang.Thread.run(Thread.java:856)

This is my full coding.

回答

0

調整EndX-startx的值似乎爲我工作。在將它發送到Mat之前,您可以嘗試減少一下。

+0

您的答案缺乏一些深入的解釋,爲什麼您的提案解決了OP。 – hotzst

相關問題