//load region, images and prepare for output
std::string region, images, output;
int visualize_delay = -1;
+ KCF_Tracker tracker;
while (1) {
int option_index = 0;
static struct option long_options[] = {
+ {"debug", no_argument, 0, 'd' },
{"help", no_argument, 0, 'h' },
{"output", required_argument, 0, 'o' },
{"visualize", optional_argument, 0, 'v' },
{0, 0, 0, 0 }
};
- int c = getopt_long(argc, argv, "hv::o:",
+ int c = getopt_long(argc, argv, "dhv::o:",
long_options, &option_index);
if (c == -1)
break;
switch (c) {
+ case 'd':
+ tracker.m_debug = true;
+ break;
case 'h':
std::cerr << "Usage: \n"
<< argv[0] << " [options]\n"
<< argv[0] << " [options] <directory>\n"
<< argv[0] << " [options] <path/to/region.txt or groundtruth.txt> <path/to/images.txt> [path/to/output.txt]\n"
<< "Options:\n"
- << " --visualize | -v [delay_ms]\n";
+ << " --visualize | -v [delay_ms]\n"
+ << " --output | -o <outout.txt>\n"
+ << " --debug | -d\n";
exit(0);
break;
case 'o':
}
VOT vot_io(region, images, output);
- KCF_Tracker tracker;
cv::Mat image;
//img = firts frame, initPos = initial position in the first frame
#if !defined OPENCV_CUFFT || !defined FFTW
cv::dft(input, complex_result, cv::DFT_COMPLEX_OUTPUT);
#endif //!defined OPENCV_CUFFT || !defined FFTW
-#ifdef DEBUG_MODE
- //extraxt x and y channels
- cv::Mat xy[2]; //X,Y
- cv::split(complex_result, xy);
-
- //calculate angle and magnitude
- cv::Mat magnitude, angle;
- cv::cartToPolar(xy[0], xy[1], magnitude, angle, true);
-
- //translate magnitude to range [0;1]
- double mag_max;
- cv::minMaxLoc(magnitude, 0, &mag_max);
- magnitude.convertTo(magnitude, -1, 1.0 / mag_max);
-
- //build hsv image
- cv::Mat _hsv[3], hsv;
- _hsv[0] = angle;
- _hsv[1] = cv::Mat::ones(angle.size(), CV_32F);
- _hsv[2] = magnitude;
- cv::merge(_hsv, 3, hsv);
-
- //convert to BGR and show
- cv::Mat bgr;//CV_32FC3 matrix
- cv::cvtColor(hsv, bgr, cv::COLOR_HSV2BGR);
- cv::resize(bgr, bgr, cv::Size(600,600));
- cv::imshow("DFT", bgr);
- cv::waitKey(0);
-#endif //DEBUG_MODE
+
+ if (m_debug) {
+ //extraxt x and y channels
+ cv::Mat xy[2]; //X,Y
+ cv::split(complex_result, xy);
+
+ //calculate angle and magnitude
+ cv::Mat magnitude, angle;
+ cv::cartToPolar(xy[0], xy[1], magnitude, angle, true);
+
+ //translate magnitude to range [0;1]
+ double mag_max;
+ cv::minMaxLoc(magnitude, 0, &mag_max);
+ magnitude.convertTo(magnitude, -1, 1.0 / mag_max);
+
+ //build hsv image
+ cv::Mat _hsv[3], hsv;
+ _hsv[0] = angle;
+ _hsv[1] = cv::Mat::ones(angle.size(), CV_32F);
+ _hsv[2] = magnitude;
+ cv::merge(_hsv, 3, hsv);
+
+ //convert to BGR and show
+ cv::Mat bgr;//CV_32FC3 matrix
+ cv::cvtColor(hsv, bgr, cv::COLOR_HSV2BGR);
+ cv::resize(bgr, bgr, cv::Size(600,600));
+ cv::imshow("DFT", bgr);
+ cv::waitKey(10);
+ }
+
return ComplexMat(complex_result);
}