diff --git a/demo/demo/demo.cpp b/demo/demo/demo.cpp index 83ed14a..6a5d9ef 100644 --- a/demo/demo/demo.cpp +++ b/demo/demo/demo.cpp @@ -3,8 +3,7 @@ #include /* srand, rand */ #include #include -#include -#include +#include #include "utils.h" #include @@ -21,9 +20,6 @@ #define MAX_DETECT_SIZE 100 bool gRun; -cv::Mat frame_v; -cv::Mat frame_top_v; -std::mutex sem; void sig_handler(int signo) { @@ -31,19 +27,6 @@ void sig_handler(int signo) gRun = false; } -void *showImages(void *x_void_ptr) -{ - - while (gRun) - { - sem.lock(); - cv::imshow("detection", frame_v); - cv::imshow("topview", frame_top_v); - sem.unlock(); - cv::waitKey(30); - } -} - int main(int argc, char *argv[]) { @@ -66,7 +49,7 @@ int main(int argc, char *argv[]) int CAM_IDX = 0; if (argc > 5) CAM_IDX = atoi(argv[5]); - bool to_show = false; + bool to_show = true; if (argc > 6) to_show = atoi(argv[6]); @@ -83,16 +66,13 @@ int main(int argc, char *argv[]) std::cout << "camera started\n"; cv::Mat frame; - cv::Mat frame_top; - cv::Mat dnn_input; cv::namedWindow("detection", cv::WINDOW_NORMAL); cv::namedWindow("topview", cv::WINDOW_NORMAL); + cv::Mat frame_top; frame_top = cv::imread("../demo/demo/data/map_b.jpg"); - pthread_t visual; - /*projection matrix*/ int proj_matrix_read = 0; @@ -113,7 +93,7 @@ int main(int argc, char *argv[]) double lat, lon, alt; /*tracker infos*/ - srand(time(NULL)); + srand (time(NULL)); std::vector trackers; std::vector cur_frame; int initial_age = -5; @@ -127,6 +107,7 @@ int main(int argc, char *argv[]) while (gRun) { + cap >> frame; if (!frame.data) { @@ -178,9 +159,10 @@ int main(int argc, char *argv[]) //std::cout<= 0 && pix_y >= 0) - cv::circle(frame_top, cv::Point(pix_x, pix_y), 7.0, cv::Scalar(t.r_, t.g_, t.b_), CV_FILLED, 8, 0); + if(pix_x < frame_top.cols && pix_y < frame_top.rows && pix_x >= 0 && pix_y >= 0) + cv::circle(frame_top, cv::Point(pix_x,pix_y), 7.0, cv::Scalar(t.r_, t.g_, t.b_), CV_FILLED, 8, 0); std::vector map_p, camera_p; map_p.push_back(cv::Point2f(pix_x, pix_y)); @@ -227,25 +211,7 @@ int main(int argc, char *argv[]) //std::cout << "pix_x: " << camera_p[0].x << " pix_y: " << camera_p[0].y << std::endl; cv::circle(frame, cv::Point(camera_p[0].x, camera_p[0].y), 3.0, cv::Scalar(t.r_, t.g_, t.b_), CV_FILLED, 8, 0); - } - } - - TIMER_START - sem.lock(); - frame_v = frame.clone(); - frame_top_v = frame_top.clone(); - sem.unlock(); - - TIMER_STOP - - if (frame_nbr == 0) - { - - if (pthread_create(&visual, NULL, showImages, NULL)) - { - fprintf(stderr, "Error creating thread\n"); - return 1; } } @@ -254,6 +220,15 @@ int main(int argc, char *argv[]) send_client_dummy(coords, coord_i, sock, socket_opened, CAM_IDX); + + if (to_show) + { + cv::imshow("detection", frame); + cv::imshow("topview", frame_top); + cv::waitKey(1); + } + + } /* for (size_t i = 0; i < trackers.size(); i++)