0
我想在android上使用OpenCV camShift函數實現對象跟蹤應用程序。我正在使用我的android平板電腦的相機來獲取圖像幀。我在圖像框架內定義了一個我想要跟蹤的空間的矩形。之後,我將這兩個值傳遞給Video.Camshift函數以及終端條件。當我啓動應用程序,我得到一個:OpenCV Android CamShift聲明失敗錯誤
OpenCV的錯誤:斷言失敗 - 錯誤
下面是相關代碼:
public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
Mat scene = inputFrame.rgba();
if(trackingFrame == null){
trackingFrame = new Rect(scene.cols()/2,scene.rows()/2,50,50);
}
System.out.println(trackingFrame.size().toString());
RotatedRect box =Video.CamShift(scene, trackingFrame, new TermCriteria(TermCriteria.EPS,10,1));
trackingFrame = box.boundingRect();
Point pt1 =new Point(trackingFrame.x,trackingFrame.y);
Point pt2 =new Point(trackingFrame.x+trackingFrame.width,trackingFrame.y+trackingFrame.height);
Scalar RED = new Scalar(255,0,0);
Imgproc.rectangle(scene, pt1, pt2, RED);
return scene;
}
這是我的錯誤:
E/cv::error()(19177): OpenCV Error: Assertion failed (cn == 1) in int cv::meanShift(cv::InputArray, cv::Rect&, cv::TermCriteria), file /home/maksim/workspace/android-pack/opencv/modules/video/src/camshift.cpp, line 59
E/org.opencv.video(19177): video::CamShift_10() caught cv::Exception: /home/maksim/workspace/android-pack/opencv/modules/video/src/camshift.cpp:59: error: (-215) cn == 1 in function int cv::meanShift(cv::InputArray, cv::Rect&, cv::TermCriteria)
W/dalvikvm(19177): threadid=11: thread exiting with uncaught exception (group=0x42f05500)
E/AndroidRuntime(19177): FATAL EXCEPTION: Thread-8274
E/AndroidRuntime(19177): CvException [org.opencv.core.CvException: cv::Exception: /home/maksim/workspace/android-pack/opencv/modules/video/src/camshift.cpp:59: error: (-215) cn == 1 in function int cv::meanShift(cv::InputArray, cv::Rect&, cv::TermCriteria)
我真的不明白問題是什麼,因爲錯誤消息沒有說明任何具體的東西。有誰能夠幫助我?
如果問題解決,請編輯一個完成解決的代碼。 –