From 76276fdbeade20f30f9474e32a289dba5c09d920 Mon Sep 17 00:00:00 2001
From: AlexeyAB <alexeyab84@gmail.com>
Date: Wed, 23 Aug 2017 18:54:24 +0000
Subject: [PATCH] You can specify filename for output video by using -out_filename res.avi
---
build/darknet/x64/darknet_demo_coco.cmd | 2 +-
src/yolo.c | 3 ++-
src/image.c | 12 ++++++------
build/darknet/x64/darknet_net_cam_coco.cmd | 2 +-
src/coco.c | 3 ++-
src/demo.c | 6 +++---
src/detector.c | 3 ++-
build/darknet/x64/darknet_demo_voc.cmd | 2 +-
build/darknet/x64/darknet_web_cam_voc.cmd | 2 +-
build/darknet/x64/darknet_coco_9000_demo.cmd | 2 +-
src/demo.h | 2 +-
11 files changed, 21 insertions(+), 18 deletions(-)
diff --git a/build/darknet/x64/darknet_coco_9000_demo.cmd b/build/darknet/x64/darknet_coco_9000_demo.cmd
index 390d7d4..9f7f124 100644
--- a/build/darknet/x64/darknet_coco_9000_demo.cmd
+++ b/build/darknet/x64/darknet_coco_9000_demo.cmd
@@ -1,5 +1,5 @@
-darknet.exe detector demo cfg/combine9k.data yolo9000.cfg yolo9000.weights street4k.mp4
+darknet.exe detector demo cfg/combine9k.data yolo9000.cfg yolo9000.weights street4k.mp4 -out_filename res.avi
diff --git a/build/darknet/x64/darknet_demo_coco.cmd b/build/darknet/x64/darknet_demo_coco.cmd
index 8eb7809..d00f21f 100644
--- a/build/darknet/x64/darknet_demo_coco.cmd
+++ b/build/darknet/x64/darknet_demo_coco.cmd
@@ -1,6 +1,6 @@
-darknet.exe detector demo data/coco.data yolo.cfg yolo.weights test.mp4 -i 0
+darknet.exe detector demo data/coco.data yolo.cfg yolo.weights test.mp4 -i 0 -out_filename res.avi
pause
\ No newline at end of file
diff --git a/build/darknet/x64/darknet_demo_voc.cmd b/build/darknet/x64/darknet_demo_voc.cmd
index cea032c..4f9e0c2 100644
--- a/build/darknet/x64/darknet_demo_voc.cmd
+++ b/build/darknet/x64/darknet_demo_voc.cmd
@@ -1,4 +1,4 @@
-darknet.exe detector demo data/voc.data yolo-voc.cfg yolo-voc.weights test.mp4 -i 0
+darknet.exe detector demo data/voc.data yolo-voc.cfg yolo-voc.weights test.mp4 -i 0 -out_filename res.avi
pause
\ No newline at end of file
diff --git a/build/darknet/x64/darknet_net_cam_coco.cmd b/build/darknet/x64/darknet_net_cam_coco.cmd
index f6d4d87..17f1d15 100644
--- a/build/darknet/x64/darknet_net_cam_coco.cmd
+++ b/build/darknet/x64/darknet_net_cam_coco.cmd
@@ -5,7 +5,7 @@
#
# Replace the address below, on shown in the phone application
-darknet.exe detector demo data/coco.data yolo.cfg yolo.weights http://192.168.0.80:8080/video?dummy=param.mjpg -i 0
+darknet.exe detector demo data/coco.data yolo.cfg yolo.weights http://192.168.0.80:8080/video?dummy=param.mjpg -i 0 -out_filename res.avi
pause
\ No newline at end of file
diff --git a/build/darknet/x64/darknet_web_cam_voc.cmd b/build/darknet/x64/darknet_web_cam_voc.cmd
index 57046ce..c072c84 100644
--- a/build/darknet/x64/darknet_web_cam_voc.cmd
+++ b/build/darknet/x64/darknet_web_cam_voc.cmd
@@ -1,6 +1,6 @@
# play video from Web-Camera number 0
-darknet.exe detector demo data/voc.data yolo-voc.cfg yolo-voc.weights -c 0
+darknet.exe detector demo data/voc.data yolo-voc.cfg yolo-voc.weights -c 0 -out_filename res.avi
pause
\ No newline at end of file
diff --git a/src/coco.c b/src/coco.c
index f684fee..8bf5ee7 100644
--- a/src/coco.c
+++ b/src/coco.c
@@ -367,6 +367,7 @@
void run_coco(int argc, char **argv)
{
+ char *out_filename = find_char_arg(argc, argv, "-out_filename", 0);
char *prefix = find_char_arg(argc, argv, "-prefix", 0);
float thresh = find_float_arg(argc, argv, "-thresh", .2);
int cam_index = find_int_arg(argc, argv, "-c", 0);
@@ -384,5 +385,5 @@
else if(0==strcmp(argv[2], "train")) train_coco(cfg, weights);
else if(0==strcmp(argv[2], "valid")) validate_coco(cfg, weights);
else if(0==strcmp(argv[2], "recall")) validate_coco_recall(cfg, weights);
- else if(0==strcmp(argv[2], "demo")) demo(cfg, weights, thresh, cam_index, filename, coco_classes, 80, frame_skip, prefix);
+ else if(0==strcmp(argv[2], "demo")) demo(cfg, weights, thresh, cam_index, filename, coco_classes, 80, frame_skip, prefix, out_filename);
}
diff --git a/src/demo.c b/src/demo.c
index 49e08c2..c88c1d9 100644
--- a/src/demo.c
+++ b/src/demo.c
@@ -115,7 +115,7 @@
return (double)time.tv_sec + (double)time.tv_usec * .000001;
}
-void demo(char *cfgfile, char *weightfile, float thresh, int cam_index, const char *filename, char **names, int classes, int frame_skip, char *prefix)
+void demo(char *cfgfile, char *weightfile, float thresh, int cam_index, const char *filename, char **names, int classes, int frame_skip, char *prefix, char *out_filename)
{
//skip = frame_skip;
image **alphabet = load_alphabet();
@@ -194,7 +194,7 @@
if(!prefix){
//show_image(disp, "Demo");
- show_image_cv_ipl(show_img, "Demo");
+ show_image_cv_ipl(show_img, "Demo", out_filename);
int c = cvWaitKey(1);
if (c == 10){
if(frame_skip == 0) frame_skip = 60;
@@ -244,7 +244,7 @@
}
}
#else
-void demo(char *cfgfile, char *weightfile, float thresh, int cam_index, const char *filename, char **names, int classes, int frame_skip, char *prefix)
+void demo(char *cfgfile, char *weightfile, float thresh, int cam_index, const char *filename, char **names, int classes, int frame_skip, char *prefix, char *out_filename)
{
fprintf(stderr, "Demo needs OpenCV for webcam images.\n");
}
diff --git a/src/demo.h b/src/demo.h
index 5f92271..36fa955 100644
--- a/src/demo.h
+++ b/src/demo.h
@@ -2,6 +2,6 @@
#define DEMO
#include "image.h"
-void demo(char *cfgfile, char *weightfile, float thresh, int cam_index, const char *filename, char **names, int classes, int frame_skip, char *prefix);
+void demo(char *cfgfile, char *weightfile, float thresh, int cam_index, const char *filename, char **names, int classes, int frame_skip, char *prefix, char *out_filename);
#endif
diff --git a/src/detector.c b/src/detector.c
index f6b700c..367b3a3 100644
--- a/src/detector.c
+++ b/src/detector.c
@@ -509,6 +509,7 @@
void run_detector(int argc, char **argv)
{
+ char *out_filename = find_char_arg(argc, argv, "-out_filename", 0);
char *prefix = find_char_arg(argc, argv, "-prefix", 0);
float thresh = find_float_arg(argc, argv, "-thresh", .24);
int cam_index = find_int_arg(argc, argv, "-c", 0);
@@ -555,6 +556,6 @@
int classes = option_find_int(options, "classes", 20);
char *name_list = option_find_str(options, "names", "data/names.list");
char **names = get_labels(name_list);
- demo(cfg, weights, thresh, cam_index, filename, names, classes, frame_skip, prefix);
+ demo(cfg, weights, thresh, cam_index, filename, names, classes, frame_skip, prefix, out_filename);
}
}
diff --git a/src/image.c b/src/image.c
index 9efe2f6..3375ea2 100644
--- a/src/image.c
+++ b/src/image.c
@@ -518,7 +518,7 @@
}
-void show_image_cv_ipl(IplImage *disp, const char *name)
+void show_image_cv_ipl(IplImage *disp, const char *name, const char *out_filename)
{
if (disp == NULL) return;
char buff[256];
@@ -529,7 +529,7 @@
++windows;
cvShowImage(buff, disp);
-
+ if(out_filename)
{
CvSize size;
{
@@ -539,10 +539,10 @@
static CvVideoWriter* output_video = NULL; // cv::VideoWriter output_video;
if (output_video == NULL)
{
- const char* output_name = "test_dnn_out.avi";
- //output_video = cvCreateVideoWriter(output_name, CV_FOURCC('H', '2', '6', '4'), 25, size, 1);
- output_video = cvCreateVideoWriter(output_name, CV_FOURCC('D', 'I', 'V', 'X'), 25, size, 1);
- //output_video = cvCreateVideoWriter(output_name, CV_FOURCC('M', 'J', 'P', 'G'), 25, size, 1);
+ //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);
}
cvWriteFrame(output_video, disp); // comment this line to improve FPS !!!
diff --git a/src/yolo.c b/src/yolo.c
index 289a6cc..e8b9e8b 100644
--- a/src/yolo.c
+++ b/src/yolo.c
@@ -340,6 +340,7 @@
void run_yolo(int argc, char **argv)
{
+ char *out_filename = find_char_arg(argc, argv, "-out_filename", 0);
char *prefix = find_char_arg(argc, argv, "-prefix", 0);
float thresh = find_float_arg(argc, argv, "-thresh", .2);
int cam_index = find_int_arg(argc, argv, "-c", 0);
@@ -356,5 +357,5 @@
else if(0==strcmp(argv[2], "train")) train_yolo(cfg, weights);
else if(0==strcmp(argv[2], "valid")) validate_yolo(cfg, weights);
else if(0==strcmp(argv[2], "recall")) validate_yolo_recall(cfg, weights);
- else if(0==strcmp(argv[2], "demo")) demo(cfg, weights, thresh, cam_index, filename, voc_names, 20, frame_skip, prefix);
+ else if(0==strcmp(argv[2], "demo")) demo(cfg, weights, thresh, cam_index, filename, voc_names, 20, frame_skip, prefix, out_filename);
}
--
Gitblit v1.10.0