| | |
| | | #include "opencv2/highgui/highgui_c.h" |
| | | #include "opencv2/imgproc/imgproc_c.h" |
| | | #include "opencv2/core/version.hpp" |
| | | #include "http_stream.h" |
| | | #ifndef CV_VERSION_EPOCH |
| | | #include "opencv2/videoio/videoio_c.h" |
| | | #include "opencv2/imgcodecs/imgcodecs_c.h" |
| | | #include "http_stream.h" |
| | | #endif |
| | | #endif |
| | | |
| | | |
| | | int windows = 0; |
| | | |
| | | float colors[6][3] = { {1,0,1}, {0,0,1},{0,1,1},{0,1,0},{1,1,0},{1,0,0} }; |
| | |
| | | float prob = probs[i][class]; |
| | | if(prob > thresh){ |
| | | |
| | | //// for comparison with OpenCV version of DNN Darknet Yolo v2 |
| | | //printf("\n %f, %f, %f, %f, ", boxes[i].x, boxes[i].y, boxes[i].w, boxes[i].h); |
| | | // int k; |
| | | //for (k = 0; k < classes; ++k) { |
| | | // printf("%f, ", probs[i][k]); |
| | | //} |
| | | //printf("\n"); |
| | | |
| | | int width = im.h * .012; |
| | | |
| | | if(0){ |
| | |
| | | color.val[2] = blue * 256; |
| | | |
| | | cvRectangle(show_img, pt1, pt2, color, width, 8, 0); |
| | | |
| | | //printf("left=%d, right=%d, top=%d, bottom=%d, obj_id=%d, obj=%s \n", left, right, top, bot, class, names[class]); |
| | | cvRectangle(show_img, pt_text_bg1, pt_text_bg2, color, width, 8, 0); |
| | | cvRectangle(show_img, pt_text_bg1, pt_text_bg2, color, CV_FILLED, 8, 0); // filled |
| | | CvScalar black_color; |
| | |
| | | } |
| | | |
| | | |
| | | void show_image_cv_ipl(IplImage *disp, const char *name, const char *out_filename) |
| | | void show_image_cv_ipl(IplImage *disp, const char *name, CvVideoWriter *output_video_writer, int http_stream_port) |
| | | { |
| | | if (disp == NULL) return; |
| | | char buff[256]; |
| | |
| | | ++windows; |
| | | cvShowImage(buff, disp); |
| | | |
| | | if(out_filename) |
| | | { |
| | | CvSize size; |
| | | { |
| | | size.width = disp->width, size.height = disp->height; |
| | | } |
| | | |
| | | static CvVideoWriter* output_video = NULL; // cv::VideoWriter output_video; |
| | | if (output_video == NULL) |
| | | { |
| | | //const char* output_name = "test_dnn_out.avi"; |
| | | //output_video = cvCreateVideoWriter(out_filename, CV_FOURCC('H', '2', '6', '4'), 25, size, 1); |
| | | output_video = cvCreateVideoWriter(out_filename, CV_FOURCC('D', 'I', 'V', 'X'), 25, size, 1); |
| | | //output_video = cvCreateVideoWriter(out_filename, CV_FOURCC('M', 'J', 'P', 'G'), 25, size, 1); |
| | | //output_video = cvCreateVideoWriter(out_filename, CV_FOURCC('M', 'P', '4', 'V'), 25, size, 1); |
| | | //output_video = cvCreateVideoWriter(out_filename, CV_FOURCC('M', 'P', '4', '2'), 25, size, 1); |
| | | //output_video = cvCreateVideoWriter(out_filename, CV_FOURCC('X', 'V', 'I', 'D'), 25, size, 1); |
| | | //output_video = cvCreateVideoWriter(out_filename, CV_FOURCC('W', 'M', 'V', '2'), 25, size, 1); |
| | | } |
| | | |
| | | cvWriteFrame(output_video, disp); // comment this line to improve FPS !!! |
| | | // http mjpeg stream: http://localhost:8090 |
| | | // use URL with the port number stated in your command line instead of 8090 |
| | | if (http_stream_port > 0) { |
| | | //int port = 8090; |
| | | int port = http_stream_port; |
| | | int timeout = 200; |
| | | int jpeg_quality = 30; // 1 - 100 |
| | | send_mjpeg(disp, port, timeout, jpeg_quality); |
| | | } |
| | | |
| | | if(output_video_writer) { |
| | | cvWriteFrame(output_video_writer, disp); // comment this line to improve FPS !!! |
| | | printf("\n cvWriteFrame \n"); |
| | | } |
| | | |
| | |
| | | #ifdef OPENCV |
| | | |
| | | #ifndef CV_VERSION_EPOCH |
| | | image out = load_image_stb(filename, c); // OpenCV 3.x |
| | | //image out = load_image_cv(filename, c); |
| | | //image out = load_image_stb(filename, c); // OpenCV 3.x |
| | | image out = load_image_cv(filename, c); |
| | | #else |
| | | image out = load_image_cv(filename, c); // OpenCV 2.4.x |
| | | #endif |