error using MIL tracker,opencv_contrib [closed]

asked 2017-05-08 04:17:57 -0600

kzbr93 gravatar image

updated 2017-05-08 05:14:24 -0600

  hi guys, below is the code for MIL tracking, i am getting error in including tracking.hpp and int he code its showing error in create("MIL") is not declared in this scope, i am using eclipse for compiling .

this is my include includes

please help guys

thanks

  /*
     * tracker.cpp
     *
     *  Created on: 04/05/2017
     *      Author: zubair
     */
    #include <opencv2/opencv.hpp>
    #include <opencv2/core/utility.hpp>
    #include <opencv2/tracking.hpp>
    #include <opencv2/videoio.hpp>
    #include <opencv2/highgui.hpp>
    #include <stdio.h>
    #include <iostream>
    #include <cstring>
    //#include "opencv2/roiSelector.hpp"

    using namespace std;
    using namespace cv;
    int main( int argc, char** argv )
    {

      // declares all required variables
      Rect2d roi;
      Mat frame;
      // create a tracker object
     //Ptr<Tracker> tracker = Tracker::create("MIL");
      Ptr<Tracker> tracker = Tracker::create("MIL") ;
     // set input video
      std::string video = argv[1];
      VideoCapture cap(video);
      // get bounding box
      cap >> frame;
      roi = selectROI("tracker",frame);
      //quit if ROI was not selected
      if(roi.width==0 || roi.height==0)
        return 0;
      // initialize the tracker
      tracker->init(frame,roi);
      // perform the tracking process
      printf("Start the tracking process, press ESC to quit.\n");
      for ( ;; )
      {
        // get frame from the video
        cap >> frame;
        // stop the program if no more images
        if(frame.rows==0 || frame.cols==0)
          break;
        // update the tracking result
        tracker->update(frame,roi);
        // draw the tracked object
        rectangle( frame, roi, Scalar( 255, 0, 0 ), 2, 1 );
        // show image with the tracked object
        imshow("tracker",frame);
        //quit on ESC button
        if(waitKey(1)==27)break;
      }
      return 0;
    }
edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by berak
close date 2017-05-09 06:41:16.556976

Comments

the exact error msg, please ?

did you really build the opencv_contrib modules ? was the tracking module built successfully ?

berak gravatar imageberak ( 2017-05-08 04:26:23 -0600 )edit

yes, it got build successfully ,, the tracking module too,, but i see that the tracking.hpp code inside is all commented why ?? and if i uncomment it , i get errors

kzbr93 gravatar imagekzbr93 ( 2017-05-08 05:09:32 -0600 )edit

https://pastebin.com/8BKthz3B this is the whole error,, including error in header from tracking.hpp

kzbr93 gravatar imagekzbr93 ( 2017-05-08 05:11:38 -0600 )edit

i have put the include screen shot ,, please look at it

kzbr93 gravatar imagekzbr93 ( 2017-05-08 05:14:56 -0600 )edit

no screenshots, please. give us a TEXT version of the error ;(

berak gravatar imageberak ( 2017-05-08 05:17:37 -0600 )edit

now we got 3 different, conflicting error reports. ;(

your pastebin seems to hint, that your opencv main and the opencv_contrib version do no match. (the screenshot even looks like you're trying with opencv2.4)

please clone latest master versions of both from github , clean your build folder, and try again

berak gravatar imageberak ( 2017-05-08 05:22:05 -0600 )edit

i did,, please check my comment .. i gave the whole error as pastebin link .

kzbr93 gravatar imagekzbr93 ( 2017-05-08 05:23:18 -0600 )edit

actually is just the problem with the tracking.hpp,, something is going wrong ..

kzbr93 gravatar imagekzbr93 ( 2017-05-08 05:24:13 -0600 )edit

i actually just build the extra module .. from this link https://github.com/opencv/opencv_contrib ,,

kzbr93 gravatar imagekzbr93 ( 2017-05-08 05:31:03 -0600 )edit

if g++ -I/usr/local/include does not find it, your install went wrong. (your include paths are all wrong)

berak gravatar imageberak ( 2017-05-08 05:31:21 -0600 )edit

i dont have a build folder ,, just a make file :(

kzbr93 gravatar imagekzbr93 ( 2017-05-08 05:33:18 -0600 )edit

zubair@zubair-X541UV:~$ g++ -I/usr/local/include g++: fatal error: no input files compilation terminated. zubair@zubair-X541UV:~$

it couldnt find

kzbr93 gravatar imagekzbr93 ( 2017-05-08 05:34:21 -0600 )edit

how should i undo the extra module which i added in existing opencv ?'' and how to install then from build ? :(

kzbr93 gravatar imagekzbr93 ( 2017-05-08 05:35:34 -0600 )edit

sorry, i only meant - change the include path in your makefile (that's not the whole cmdline, ofc.)

berak gravatar imageberak ( 2017-05-08 05:36:11 -0600 )edit

please see here and here again. i'm quite sure, you missed some step, or overlooked some cmake or build problem on the way.

berak gravatar imageberak ( 2017-05-08 05:41:07 -0600 )edit

include for my opencv_contrib ?? you mean ?

kzbr93 gravatar imagekzbr93 ( 2017-05-08 05:42:34 -0600 )edit

one thing berek,, in this link http://docs.opencv.org/master/d7/d9f/... ,, what should i add in place of cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local .. what path ??

kzbr93 gravatar imagekzbr93 ( 2017-05-08 05:44:25 -0600 )edit

zubair@zubair-X541UV:~/opencv_contrib$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local .. CMake Error: The source directory "/home/zubair" does not appear to contain CMakeLists.txt. Specify --help for usage, or press the help button on the CMake GUI. zubair@zubair-X541UV:~/opencv_contrib$

this is what i got after i follwed this link http://docs.opencv.org/master/d7/d9f/...

kzbr93 gravatar imagekzbr93 ( 2017-05-08 05:46:05 -0600 )edit

where should the binaries be build ?

kzbr93 gravatar imagekzbr93 ( 2017-05-08 05:51:54 -0600 )edit
  • you have to run cmake from your build folder

  • the last arg should be the opencv src root folder

berak gravatar imageberak ( 2017-05-08 06:00:11 -0600 )edit

i am follwoing the instruction here http://docs.opencv.org/3.2.0/de/d25/t... , so far its building good,, i will be back after its done

kzbr93 gravatar imagekzbr93 ( 2017-05-08 06:16:07 -0600 )edit

yes berek so i have build all with opencv_contrib in opencv source folder

kzbr93 gravatar imagekzbr93 ( 2017-05-08 06:21:40 -0600 )edit

what should i do next to rectify the error ?

kzbr93 gravatar imagekzbr93 ( 2017-05-08 06:22:40 -0600 )edit

which error, now ?

berak gravatar imageberak ( 2017-05-08 06:34:41 -0600 )edit

home/zubair/opencv_contrib/opencv_contrib/modules/tracking/include/opencv2/tracking/tracker.hpp:1341:56: error: template argument 1 is invalid CV_WRAP bool add(const Mat& image, std::vector<rect2d> boundingBox); ^ /home/zubair/opencv_contrib/opencv_contrib/modules/tracking/include/opencv2/tracking/tracker.hpp:1341:56: error: template argument 2 is invalid /home/zubair/opencv_contrib/opencv_contrib/modules/tracking/include/opencv2/tracking/tracker.hpp:1351:15: error: ‘Rect2d’ was not declared in this scope std::vector<rect2d> objects; ^

again, why am i getting errors in header file ? :(

kzbr93 gravatar imagekzbr93 ( 2017-05-08 06:40:46 -0600 )edit

please include headers from /usr/local/include, not from the src folder

berak gravatar imageberak ( 2017-05-08 06:47:47 -0600 )edit

i got the flow,, i have opencv3 which came with my ros kinect , and i need to buikd my opencv_contrib there ,,, opencv3 after locating is in /opt/ros/kinetic/share/opencv3 ..

kzbr93 gravatar imagekzbr93 ( 2017-05-08 06:54:24 -0600 )edit

i solved the error now u«its just one thing if you can help @berak

Invoking: GCC C++ Linker g++ -L/usr/local/lib -L/usr/local/include -L/usr/include -o "tracker" ./src/tracker.o -lopencv_imgproc -lopencv_utility -lopencv_videoio -lopencv_highgui -lopencv_vedio -lopencv_core -lopencv_tracking /usr/bin/ld: cannot find -lopencv_utility /usr/bin/ld: cannot find -lopencv_vedio collect2: error: ld returned 1 exit status makefile:45: recipe for target 'tracker' failed make: * [tracker] Error 1

kzbr93 gravatar imagekzbr93 ( 2017-05-08 09:33:03 -0600 )edit

how can i solve this

kzbr93 gravatar imagekzbr93 ( 2017-05-08 09:33:23 -0600 )edit

there is no such thing as opencv_utility and it's opencv_video

just don't be so sloppy ...

berak gravatar imageberak ( 2017-05-08 09:37:30 -0600 )edit

that was rude :(

kzbr93 gravatar imagekzbr93 ( 2017-05-08 09:57:57 -0600 )edit

yea, apologies..

berak gravatar imageberak ( 2017-05-08 10:14:37 -0600 )edit

Building file: ../src/tracker2.cpp Invoking: GCC C++ Compiler g++ -I/usr/local/lib -I/usr/local/include -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/tracker2.d" -MT"src/tracker2.d" -o "src/tracker2.o" "../src/tracker2.cpp" ../src/tracker2.cpp: In function ‘int main(int, char)’: ../src/tracker2.cpp:14:44: error: expected primary-expression before ‘const’ Ptr<tracker> tracker = Tracker::create(const String& TrackerMIL ); ^ make: * [src/tracker2.o] Error 1 src/subdir.mk:18: recipe for target 'src/tracker2.o' failed

17:01:53 Build Finished (took 914ms)

this is not the include error !! some small thing is really missing ..

kzbr93 gravatar imagekzbr93 ( 2017-05-08 11:03:07 -0600 )edit

this is the code https://pastebin.com/bKi111q0 just giving error in create tracker

kzbr93 gravatar imagekzbr93 ( 2017-05-08 11:04:31 -0600 )edit

Tracker::create("MIL");

berak gravatar imageberak ( 2017-05-08 11:17:57 -0600 )edit

tried that too,, not happening

kzbr93 gravatar imagekzbr93 ( 2017-05-08 11:46:54 -0600 )edit

you simply don't believe it, do you ?

(thats a function call, not a declaration)

berak gravatar imageberak ( 2017-05-09 03:43:55 -0600 )edit

i did it,, now i am not getting any errors (thanks @berak) .. now its this https://pastebin.com/0kP3zzfi ,,

kzbr93 gravatar imagekzbr93 ( 2017-05-09 04:39:16 -0600 )edit