All OpenCV C-functions replaced by CPP-functions

pull/2897/head
AlexeyAB 6 years ago
parent 811f772b45
commit 97679224ba
  1. 2
      src/classifier.c
  2. 14
      src/demo.c
  3. 2
      src/detector.c
  4. 8
      src/http_stream.cpp
  5. 2
      src/http_stream.h
  6. 156
      src/image_opencv.cpp
  7. 17
      src/image_opencv.h
  8. 2
      src/rnn_vid.c

@ -196,7 +196,7 @@ void train_classifier(char *datacfg, char *cfgfile, char *weightfile, int *gpus,
save_weights(net, buff); save_weights(net, buff);
#ifdef OPENCV #ifdef OPENCV
release_ipl(&img); release_mat(&img);
destroy_all_windows_cv(); destroy_all_windows_cv();
#endif #endif

@ -48,7 +48,7 @@ mat_cv* det_img;
mat_cv* show_img; mat_cv* show_img;
static volatile int flag_exit; static volatile int flag_exit;
static volatile int letter_box = 0; static const int letter_box = 0;
void *fetch_in_thread(void *ptr) void *fetch_in_thread(void *ptr)
{ {
@ -85,7 +85,7 @@ void *detect_in_thread(void *ptr)
demo_index = (demo_index + 1) % NFRAMES; demo_index = (demo_index + 1) % NFRAMES;
if (letter_box) if (letter_box)
dets = get_network_boxes(&net, get_width_cv(in_img), get_height_cv(in_img), demo_thresh, demo_thresh, 0, 1, &nboxes, 1); // letter box dets = get_network_boxes(&net, get_width_mat(in_img), get_height_mat(in_img), demo_thresh, demo_thresh, 0, 1, &nboxes, 1); // letter box
else else
dets = get_network_boxes(&net, net.w, net.h, demo_thresh, demo_thresh, 0, 1, &nboxes, 0); // resized dets = get_network_boxes(&net, net.w, net.h, demo_thresh, demo_thresh, 0, 1, &nboxes, 0); // resized
@ -186,7 +186,7 @@ void demo(char *cfgfile, char *weightfile, float thresh, float hier_thresh, int
int src_fps = 25; int src_fps = 25;
src_fps = get_stream_fps_cpp_cv(cap); src_fps = get_stream_fps_cpp_cv(cap);
output_video_writer = output_video_writer =
create_video_writer(out_filename, 'D', 'I', 'V', 'X', src_fps, get_width_cv(det_img), get_height_cv(det_img), 1); create_video_writer(out_filename, 'D', 'I', 'V', 'X', src_fps, get_width_mat(det_img), get_height_mat(det_img), 1);
//'H', '2', '6', '4' //'H', '2', '6', '4'
//'D', 'I', 'V', 'X' //'D', 'I', 'V', 'X'
@ -230,7 +230,7 @@ void demo(char *cfgfile, char *weightfile, float thresh, float hier_thresh, int
if(!prefix){ if(!prefix){
if (!dont_show) { if (!dont_show) {
show_image_cv_ipl(show_img, "Demo"); show_image_mat(show_img, "Demo");
int c = wait_key_cv(1); int c = wait_key_cv(1);
if (c == 10) { if (c == 10) {
if (frame_skip == 0) frame_skip = 60; if (frame_skip == 0) frame_skip = 60;
@ -263,7 +263,7 @@ void demo(char *cfgfile, char *weightfile, float thresh, float hier_thresh, int
printf("\n cvWriteFrame \n"); printf("\n cvWriteFrame \n");
} }
release_ipl(&show_img); release_mat(&show_img);
pthread_join(fetch_thread, 0); pthread_join(fetch_thread, 0);
pthread_join(detect_thread, 0); pthread_join(detect_thread, 0);
@ -295,8 +295,8 @@ void demo(char *cfgfile, char *weightfile, float thresh, float hier_thresh, int
} }
// free memory // free memory
release_ipl(&show_img); release_mat(&show_img);
release_ipl(&in_img); release_mat(&in_img);
free_image(in_s); free_image(in_s);
free(avg); free(avg);

@ -301,7 +301,7 @@ void train_detector(char *datacfg, char *cfgfile, char *weightfile, int *gpus, i
save_weights(net, buff); save_weights(net, buff);
#ifdef OPENCV #ifdef OPENCV
release_ipl(&img); release_mat(&img);
destroy_all_windows_cv(); destroy_all_windows_cv();
#endif #endif

@ -489,14 +489,14 @@ public:
}; };
// ---------------------------------------- // ----------------------------------------
struct mat_cv :IplImage { int a[0]; }; struct mat_cv : cv::Mat { int a[0]; };
void send_mjpeg(mat_cv* ipl, int port, int timeout, int quality) void send_mjpeg(mat_cv* mat, int port, int timeout, int quality)
{ {
try { try {
static MJPG_sender wri(port, timeout, quality); static MJPG_sender wri(port, timeout, quality);
cv::Mat mat = cv::cvarrToMat(ipl); //cv::Mat mat = cv::cvarrToMat(ipl);
wri.write(mat); wri.write(*mat);
std::cout << " MJPEG-stream sent. \n"; std::cout << " MJPEG-stream sent. \n";
} }
catch (...) { catch (...) {

@ -11,7 +11,7 @@ extern "C" {
void send_json(detection *dets, int nboxes, int classes, char **names, long long int frame_id, int port, int timeout); void send_json(detection *dets, int nboxes, int classes, char **names, long long int frame_id, int port, int timeout);
#ifdef OPENCV #ifdef OPENCV
void send_mjpeg(mat_cv* ipl, int port, int timeout, int quality); void send_mjpeg(mat_cv* mat, int port, int timeout, int quality);
#endif // OPENCV #endif // OPENCV

@ -62,7 +62,7 @@ using std::endl;
extern "C" { extern "C" {
struct mat_cv :IplImage { int a[0]; }; struct mat_cv : cv::Mat { int a[0]; };
struct cap_cv : cv::VideoCapture { int a[0]; }; struct cap_cv : cv::VideoCapture { int a[0]; };
struct write_cv : cv::VideoWriter { int a[0]; }; struct write_cv : cv::VideoWriter { int a[0]; };
@ -199,7 +199,7 @@ void release_mat(mat_cv **mat)
// ==================================================================== // ====================================================================
// IplImage // IplImage
// ==================================================================== // ====================================================================
/*
int get_width_cv(mat_cv *ipl_src) int get_width_cv(mat_cv *ipl_src)
{ {
IplImage *ipl = (IplImage *)ipl_src; IplImage *ipl = (IplImage *)ipl_src;
@ -207,8 +207,9 @@ int get_width_cv(mat_cv *ipl_src)
} }
// ---------------------------------------- // ----------------------------------------
int get_height_cv(mat_cv *ipl) int get_height_cv(mat_cv *ipl_src)
{ {
IplImage *ipl = (IplImage *)ipl_src;
return ipl->height; return ipl->height;
} }
// ---------------------------------------- // ----------------------------------------
@ -220,10 +221,11 @@ void release_ipl(mat_cv **ipl)
*ipl_img = NULL; *ipl_img = NULL;
} }
// ---------------------------------------- // ----------------------------------------
*/
// ==================================================================== // ====================================================================
// image-to-ipl, ipl-to-image, image_to_mat, mat_to_image // image-to-ipl, ipl-to-image, image_to_mat, mat_to_image
// ==================================================================== // ====================================================================
/*
mat_cv *image_to_ipl(image im) mat_cv *image_to_ipl(image im)
{ {
int x, y, c; int x, y, c;
@ -262,7 +264,7 @@ image ipl_to_image(mat_cv* src_ptr)
return im; return im;
} }
// ---------------------------------------- // ----------------------------------------
*/
cv::Mat ipl_to_mat(IplImage *ipl) cv::Mat ipl_to_mat(IplImage *ipl)
{ {
Mat m = cvarrToMat(ipl, true); Mat m = cvarrToMat(ipl, true);
@ -320,6 +322,11 @@ image mat_to_image(cv::Mat mat)
return im; return im;
} }
image mat_to_image_cv(mat_cv *mat)
{
return mat_to_image(*mat);
}
// ==================================================================== // ====================================================================
// Window // Window
// ==================================================================== // ====================================================================
@ -451,11 +458,13 @@ write_cv *create_video_writer(char *out_filename, char c1, char c2, char c3, cha
return NULL; return NULL;
} }
void write_frame_cv(write_cv *output_video_writer, mat_cv *show_img) void write_frame_cv(write_cv *output_video_writer, mat_cv *mat)
{ {
try { try {
cv::VideoWriter *out = (cv::VideoWriter *)output_video_writer; cv::VideoWriter *out = (cv::VideoWriter *)output_video_writer;
out->write(ipl_to_mat(show_img)); //out->write(ipl_to_mat(show_img));
out->write(*mat);
show_image_mat(mat, "mat");
} }
catch (...) { catch (...) {
cerr << "OpenCV exception: write_frame_cv \n"; cerr << "OpenCV exception: write_frame_cv \n";
@ -505,8 +514,6 @@ image get_image_from_stream(void *p)
return mat_to_image(m); return mat_to_image(m);
} }
int show_image_cv(image im, const char* name, int ms) int show_image_cv(image im, const char* name, int ms)
{ {
Mat m = image_to_mat(im); Mat m = image_to_mat(im);
@ -562,16 +569,18 @@ void release_capture(cap_cv* cap)
// ---------------------------------------- // ----------------------------------------
mat_cv* get_capture_frame_cv(cap_cv *cap) { mat_cv* get_capture_frame_cv(cap_cv *cap) {
IplImage* src = NULL; //IplImage* src = NULL;
cv::Mat *mat = new cv::Mat();
try { try {
if (cap) { if (cap) {
cv::VideoCapture &cpp_cap = *(cv::VideoCapture *)cap; cv::VideoCapture &cpp_cap = *(cv::VideoCapture *)cap;
cv::Mat frame; //cv::Mat frame;
if (cpp_cap.isOpened()) if (cpp_cap.isOpened())
{ {
cpp_cap >> frame; cpp_cap >> *mat;
IplImage tmp = frame; //cpp_cap >> frame;
src = cvCloneImage(&tmp); //IplImage tmp = frame;
//src = cvCloneImage(&tmp);
} }
else std::cout << " Video-stream stopped! \n"; else std::cout << " Video-stream stopped! \n";
} }
@ -580,7 +589,7 @@ mat_cv* get_capture_frame_cv(cap_cv *cap) {
catch (...) { catch (...) {
std::cout << " OpenCV exception: Video-stream stoped! \n"; std::cout << " OpenCV exception: Video-stream stoped! \n";
} }
return (mat_cv *)src; return (mat_cv *)mat;
} }
// ---------------------------------------- // ----------------------------------------
@ -670,41 +679,42 @@ int set_capture_position_frame_cv(cap_cv *cap, int index)
image get_image_from_stream_cpp(cap_cv *cap) image get_image_from_stream_cpp(cap_cv *cap)
{ {
IplImage* src; //IplImage* src = NULL;
cv::Mat *src = new cv::Mat();
static int once = 1; static int once = 1;
if (once) { if (once) {
once = 0; once = 0;
do { do {
src = get_capture_frame_cv(cap); src = get_capture_frame_cv(cap);
if (!src) return make_empty_image(0, 0, 0); if (!src) return make_empty_image(0, 0, 0);
} while (src->width < 1 || src->height < 1 || src->nChannels < 1); } while (src->cols < 1 || src->rows < 1 || src->channels() < 1);
printf("Video stream: %d x %d \n", src->width, src->height); printf("Video stream: %d x %d \n", src->cols, src->rows);
} }
else else
src = get_capture_frame_cv(cap); src = get_capture_frame_cv(cap);
if (!src) return make_empty_image(0, 0, 0); if (!src) return make_empty_image(0, 0, 0);
image im = ipl_to_image((mat_cv*)src); image im = mat_to_image(*src);// ipl_to_image((mat_cv*)src);
rgbgr_image(im); rgbgr_image(im);
return im; return im;
} }
// ---------------------------------------- // ----------------------------------------
int wait_for_stream(cap_cv *cap, IplImage* src, int dont_close) int wait_for_stream(cap_cv *cap, cv::Mat* src, int dont_close)
{ {
if (!src) { if (!src) {
if (dont_close) src = cvCreateImage(cvSize(416, 416), IPL_DEPTH_8U, 3); if (dont_close) src = new cv::Mat(416, 416, CV_8UC(3)); // cvCreateImage(cvSize(416, 416), IPL_DEPTH_8U, 3);
else return 0; else return 0;
} }
if (src->width < 1 || src->height < 1 || src->nChannels < 1) { if (src->cols < 1 || src->rows < 1 || src->channels() < 1) {
if (dont_close) { if (dont_close) {
cvReleaseImage(&src); delete src;// cvReleaseImage(&src);
int z = 0; int z = 0;
for (z = 0; z < 20; ++z) { for (z = 0; z < 20; ++z) {
get_capture_frame_cv(cap); get_capture_frame_cv(cap);
cvReleaseImage(&src); delete src;// cvReleaseImage(&src);
} }
src = cvCreateImage(cvSize(416, 416), IPL_DEPTH_8U, 3); src = new cv::Mat(416, 416, CV_8UC(3)); // cvCreateImage(cvSize(416, 416), IPL_DEPTH_8U, 3);
} }
else return 0; else return 0;
} }
@ -715,7 +725,7 @@ int wait_for_stream(cap_cv *cap, IplImage* src, int dont_close)
image get_image_from_stream_resize(cap_cv *cap, int w, int h, int c, mat_cv** in_img, int dont_close) image get_image_from_stream_resize(cap_cv *cap, int w, int h, int c, mat_cv** in_img, int dont_close)
{ {
c = c ? c : 3; c = c ? c : 3;
IplImage* src; cv::Mat *src = NULL;
static int once = 1; static int once = 1;
if (once) { if (once) {
@ -723,22 +733,23 @@ image get_image_from_stream_resize(cap_cv *cap, int w, int h, int c, mat_cv** in
do { do {
src = get_capture_frame_cv(cap); src = get_capture_frame_cv(cap);
if (!src) return make_empty_image(0, 0, 0); if (!src) return make_empty_image(0, 0, 0);
} while (src->width < 1 || src->height < 1 || src->nChannels < 1); } while (src->cols < 1 || src->rows < 1 || src->channels() < 1);
printf("Video stream: %d x %d \n", src->width, src->height); printf("Video stream: %d x %d \n", src->cols, src->rows);
} }
else else
src = get_capture_frame_cv(cap); src = get_capture_frame_cv(cap);
if (!wait_for_stream(cap, src, dont_close)) return make_empty_image(0, 0, 0); if (!wait_for_stream(cap, src, dont_close)) return make_empty_image(0, 0, 0);
IplImage* new_img = cvCreateImage(cvSize(w, h), IPL_DEPTH_8U, c);
*in_img = (mat_cv *)cvCreateImage(cvSize(src->width, src->height), IPL_DEPTH_8U, c); *(cv::Mat **)in_img = src;
cvResize(src, *in_img, CV_INTER_LINEAR);
cvResize(src, new_img, CV_INTER_LINEAR); cv::Mat new_img = cv::Mat(h, w, CV_8UC(c));
image im = ipl_to_image((mat_cv*)new_img); cv::resize(*src, new_img, new_img.size(), 0, 0, CV_INTER_LINEAR);
cvReleaseImage(&new_img); if (c>1) cv::cvtColor(new_img, new_img, CV_RGB2BGR);
cvReleaseImage(&src); image im = mat_to_image(new_img);
if (c>1)
rgbgr_image(im); //show_image_cv(im, "im");
//show_image_mat(*in_img, "in_img");
return im; return im;
} }
// ---------------------------------------- // ----------------------------------------
@ -746,27 +757,33 @@ image get_image_from_stream_resize(cap_cv *cap, int w, int h, int c, mat_cv** in
image get_image_from_stream_letterbox(cap_cv *cap, int w, int h, int c, mat_cv** in_img, int dont_close) image get_image_from_stream_letterbox(cap_cv *cap, int w, int h, int c, mat_cv** in_img, int dont_close)
{ {
c = c ? c : 3; c = c ? c : 3;
IplImage* src; //IplImage* src;
cv::Mat *src = NULL;
static int once = 1; static int once = 1;
if (once) { if (once) {
once = 0; once = 0;
do { do {
src = get_capture_frame_cv(cap); src = get_capture_frame_cv(cap);
if (!src) return make_empty_image(0, 0, 0); if (!src) return make_empty_image(0, 0, 0);
} while (src->width < 1 || src->height < 1 || src->nChannels < 1); } while (src->cols < 1 || src->rows < 1 || src->channels() < 1);
printf("Video stream: %d x %d \n", src->width, src->height); printf("Video stream: %d x %d \n", src->cols, src->rows);
} }
else else
src = get_capture_frame_cv(cap); src = get_capture_frame_cv(cap);
if (!wait_for_stream(cap, src, dont_close)) return make_empty_image(0, 0, 0); if (!wait_for_stream(cap, src, dont_close)) return make_empty_image(0, 0, 0); // passes (cv::Mat *)src while should be (cv::Mat **)src
*in_img = (mat_cv *)cvCreateImage(cvSize(src->width, src->height), IPL_DEPTH_8U, c);
cvResize(src, *in_img, CV_INTER_LINEAR); *in_img = (mat_cv *)new cv::Mat(src->rows, src->cols, CV_8UC(c));
image tmp = ipl_to_image((mat_cv*)src); cv::resize(*src, **in_img, (*in_img)->size(), 0, 0, CV_INTER_LINEAR);
if (c>1) cv::cvtColor(*src, *src, CV_RGB2BGR);
image tmp = mat_to_image(*src);
image im = letterbox_image(tmp, w, h); image im = letterbox_image(tmp, w, h);
free_image(tmp); free_image(tmp);
cvReleaseImage(&src); release_mat((mat_cv **)&src);
if (c>1) rgbgr_image(im);
//show_image_cv(im, "im");
//show_image_mat(*in_img, "in_img");
return im; return im;
} }
// ---------------------------------------- // ----------------------------------------
@ -817,8 +834,9 @@ void save_cv_jpg(mat_cv *img_src, const char *name)
// ==================================================================== // ====================================================================
// Draw Detection // Draw Detection
// ==================================================================== // ====================================================================
void draw_detections_cv_v3(mat_cv* show_img, detection *dets, int num, float thresh, char **names, image **alphabet, int classes, int ext_output) void draw_detections_cv_v3(mat_cv* mat, detection *dets, int num, float thresh, char **names, image **alphabet, int classes, int ext_output)
{ {
cv::Mat *show_img = mat;
int i, j; int i, j;
if (!show_img) return; if (!show_img) return;
static int frame_id = 0; static int frame_id = 0;
@ -833,6 +851,9 @@ void draw_detections_cv_v3(mat_cv* show_img, detection *dets, int num, float thr
if (class_id < 0) { if (class_id < 0) {
strcat(labelstr, names[j]); strcat(labelstr, names[j]);
class_id = j; class_id = j;
char buff[10];
sprintf(buff, " (%2.0f%%)", dets[i].prob[j]*100);
strcat(labelstr, buff);
} }
else { else {
strcat(labelstr, ", "); strcat(labelstr, ", ");
@ -842,7 +863,7 @@ void draw_detections_cv_v3(mat_cv* show_img, detection *dets, int num, float thr
} }
} }
if (class_id >= 0) { if (class_id >= 0) {
int width = show_img->height * .006; int width = show_img->rows * .006;
//if(0){ //if(0){
//width = pow(prob, 1./2.)*10+1; //width = pow(prob, 1./2.)*10+1;
@ -862,21 +883,25 @@ void draw_detections_cv_v3(mat_cv* show_img, detection *dets, int num, float thr
rgb[1] = green; rgb[1] = green;
rgb[2] = blue; rgb[2] = blue;
box b = dets[i].bbox; box b = dets[i].bbox;
if (std::isnan(b.w) || std::isinf(b.w)) b.w = 0.5;
if (std::isnan(b.h) || std::isinf(b.h)) b.h = 0.5;
if (std::isnan(b.x) || std::isinf(b.x)) b.x = 0.5;
if (std::isnan(b.y) || std::isinf(b.y)) b.y = 0.5;
b.w = (b.w < 1) ? b.w : 1; b.w = (b.w < 1) ? b.w : 1;
b.h = (b.h < 1) ? b.h : 1; b.h = (b.h < 1) ? b.h : 1;
b.x = (b.x < 1) ? b.x : 1; b.x = (b.x < 1) ? b.x : 1;
b.y = (b.y < 1) ? b.y : 1; b.y = (b.y < 1) ? b.y : 1;
//printf("%f %f %f %f\n", b.x, b.y, b.w, b.h); //printf("%f %f %f %f\n", b.x, b.y, b.w, b.h);
int left = (b.x - b.w / 2.)*show_img->width; int left = (b.x - b.w / 2.)*show_img->cols;
int right = (b.x + b.w / 2.)*show_img->width; int right = (b.x + b.w / 2.)*show_img->cols;
int top = (b.y - b.h / 2.)*show_img->height; int top = (b.y - b.h / 2.)*show_img->rows;
int bot = (b.y + b.h / 2.)*show_img->height; int bot = (b.y + b.h / 2.)*show_img->rows;
if (left < 0) left = 0; if (left < 0) left = 0;
if (right > show_img->width - 1) right = show_img->width - 1; if (right > show_img->cols - 1) right = show_img->cols - 1;
if (top < 0) top = 0; if (top < 0) top = 0;
if (bot > show_img->height - 1) bot = show_img->height - 1; if (bot > show_img->rows - 1) bot = show_img->rows - 1;
//int b_x_center = (left + right) / 2; //int b_x_center = (left + right) / 2;
//int b_y_center = (top + bot) / 2; //int b_y_center = (top + bot) / 2;
@ -884,16 +909,16 @@ void draw_detections_cv_v3(mat_cv* show_img, detection *dets, int num, float thr
//int b_height = bot - top; //int b_height = bot - top;
//sprintf(labelstr, "%d x %d - w: %d, h: %d", b_x_center, b_y_center, b_width, b_height); //sprintf(labelstr, "%d x %d - w: %d, h: %d", b_x_center, b_y_center, b_width, b_height);
float const font_size = show_img->height / 1000.F; float const font_size = show_img->rows / 1200.F;
CvPoint pt1, pt2, pt_text, pt_text_bg1, pt_text_bg2; CvPoint pt1, pt2, pt_text, pt_text_bg1, pt_text_bg2;
pt1.x = left; pt1.x = left;
pt1.y = top; pt1.y = top;
pt2.x = right; pt2.x = right;
pt2.y = bot; pt2.y = bot;
pt_text.x = left; pt_text.x = left;
pt_text.y = top - 12; pt_text.y = top - 4;// 12;
pt_text_bg1.x = left; pt_text_bg1.x = left;
pt_text_bg1.y = top - (10 + 25 * font_size); pt_text_bg1.y = top - (3 + 25 * font_size);
pt_text_bg2.x = right; pt_text_bg2.x = right;
pt_text_bg2.y = top; pt_text_bg2.y = top;
CvScalar color; CvScalar color;
@ -918,20 +943,17 @@ void draw_detections_cv_v3(mat_cv* show_img, detection *dets, int num, float thr
//cvSaveImage(image_name, copy_img, 0); //cvSaveImage(image_name, copy_img, 0);
//cvResetImageROI(copy_img); //cvResetImageROI(copy_img);
cvRectangle(show_img, pt1, pt2, color, width, 8, 0); cv::rectangle(*show_img, pt1, pt2, color, width, 8, 0);
if (ext_output) if (ext_output)
printf("\t(left_x: %4.0f top_y: %4.0f width: %4.0f height: %4.0f)\n", printf("\t(left_x: %4.0f top_y: %4.0f width: %4.0f height: %4.0f)\n",
(float)left, (float)top, b.w*show_img->width, b.h*show_img->height); (float)left, (float)top, b.w*show_img->cols, b.h*show_img->rows);
else else
printf("\n"); printf("\n");
cvRectangle(show_img, pt_text_bg1, pt_text_bg2, color, width, 8, 0); cv::rectangle(*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 cv::rectangle(*show_img, pt_text_bg1, pt_text_bg2, color, CV_FILLED, 8, 0); // filled
CvScalar black_color; cv::Scalar black_color = CV_RGB(0,0,0);
black_color.val[0] = 0; cv::putText(*show_img, labelstr, pt_text, CV_FONT_HERSHEY_SIMPLEX, font_size, black_color, font_size * 3, CV_AA);
CvFont font;
cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, font_size, font_size, 0, font_size * 3, 8);
cvPutText(show_img, labelstr, pt_text, &font, black_color);
} }
} }
if (ext_output) { if (ext_output) {
@ -1053,7 +1075,7 @@ void draw_train_loss(mat_cv* img_src, int img_size, float avg_loss, float max_im
else else
cv::putText(img, "- Saved", cvPoint(260, img_size - 10), CV_FONT_HERSHEY_COMPLEX_SMALL, 0.7, CV_RGB(255, 255, 255), 1, CV_AA); cv::putText(img, "- Saved", cvPoint(260, img_size - 10), CV_FONT_HERSHEY_COMPLEX_SMALL, 0.7, CV_RGB(255, 255, 255), 1, CV_AA);
if (mjpeg_port > 0) send_mjpeg((mat_cv *)mat_to_ipl(img), mjpeg_port, 500000, 100); if (mjpeg_port > 0) send_mjpeg((mat_cv *)&img, mjpeg_port, 500000, 100);
} }
// ---------------------------------------- // ----------------------------------------

@ -23,20 +23,23 @@ int get_width_mat(mat_cv *mat);
int get_height_mat(mat_cv *mat); int get_height_mat(mat_cv *mat);
void release_mat(mat_cv **mat); void release_mat(mat_cv **mat);
// IplImage // IplImage - to delete
int get_width_cv(mat_cv *ipl); //int get_width_cv(mat_cv *ipl);
int get_height_cv(mat_cv *ipl); //int get_height_cv(mat_cv *ipl);
void release_ipl(mat_cv **ipl); //void release_ipl(mat_cv **ipl);
// image-to-ipl, ipl-to-image, image_to_mat, mat_to_image // image-to-ipl, ipl-to-image, image_to_mat, mat_to_image
mat_cv *image_to_ipl(image im); //mat_cv *image_to_ipl(image im); // to delete
image ipl_to_image(mat_cv* src_ptr); //image ipl_to_image(mat_cv* src_ptr); // to delete
// mat_cv *image_to_ipl(image im) // mat_cv *image_to_ipl(image im)
// image ipl_to_image(mat_cv* src_ptr) // image ipl_to_image(mat_cv* src_ptr)
// cv::Mat ipl_to_mat(IplImage *ipl) // cv::Mat ipl_to_mat(IplImage *ipl)
// IplImage *mat_to_ipl(cv::Mat mat) // IplImage *mat_to_ipl(cv::Mat mat)
// Mat image_to_mat(image img) // Mat image_to_mat(image img)
// image mat_to_image(cv::Mat mat) // image mat_to_image(cv::Mat mat)
image mat_to_image_cv(mat_cv *mat);
// Window // Window
void create_window_cv(char const* window_name, int full_screen, int width, int height); void create_window_cv(char const* window_name, int full_screen, int width, int height);
@ -50,7 +53,7 @@ void show_image_mat(mat_cv *mat_ptr, const char *name);
// Video Writer // Video Writer
write_cv *create_video_writer(char *out_filename, char c1, char c2, char c3, char c4, int fps, int width, int height, int is_color); write_cv *create_video_writer(char *out_filename, char c1, char c2, char c3, char c4, int fps, int width, int height, int is_color);
void write_frame_cv(write_cv *output_video_writer, mat_cv *show_img); void write_frame_cv(write_cv *output_video_writer, mat_cv *mat);
void release_video_writer(write_cv **output_video_writer); void release_video_writer(write_cv **output_video_writer);

@ -40,7 +40,7 @@ float_pair get_rnn_vid_data(network net, char **files, int n, int batch, int ste
int i; int i;
for(i = 0; i < net.batch; ++i){ for(i = 0; i < net.batch; ++i){
mat_cv *src = get_capture_frame_cv(cap); mat_cv *src = get_capture_frame_cv(cap);
image im = ipl_to_image(src); image im = mat_to_image_cv(src);
rgbgr_image(im); rgbgr_image(im);
image re = resize_image(im, net.w, net.h); image re = resize_image(im, net.w, net.h);
//show_image(re, "loaded"); //show_image(re, "loaded");

Loading…
Cancel
Save