2016-05-13 31 views
0

OpenCV camShift関数を使用してアンドロイド上にオブジェクトトラッキングアプリケーションを実装しようとしています。私はイメージフレームを取得するために、私のアンドロイドタブレットのカメラを使用しています。私はイメージフレーム内で追跡したい領域の四角形を定義します。その後、これらの2つの値をVideo.Camshift関数と端末基準に渡します。OpenCV Android CamShiftアサーション失敗エラー

OpenCVのエラー:私は、アプリケーションを起動した後、私は取得アサーションがここ-error

を失敗し、関連するコードです:

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) 

エラーメッセージには何も具体的な意味がないので、私は実際に問題が何かを理解していません。誰か助けてくれますか?

答えて

-1

私は間違いを発見しました。代わりにカメラ入力を使用しての 、私が最初に持っていた:

  • 私は
  • calcBackProject機能のためにヒストグラムcalcHist
  • 使用している画像のヒストグラムを作る追跡したい画像内のオブジェクトを選択します
  • 問題が解決されている場合Video.CamShift -function
+0

calcBackProjectの出力を使用し、Aを編集してください完全な解決されたコードでnswer。 –

関連する問題