From 1b5afb45838e603fa6780762eb8cc59246dc2d81 Mon Sep 17 00:00:00 2001
From: IlyaOvodov <b@ovdv.ru>
Date: Tue, 08 May 2018 11:09:35 +0000
Subject: [PATCH] Output improvements for detector results: When printing detector results, output was done in random order, obfuscating results for interpreting. Now: 1. Text output includes coordinates of rects in (left,right,top,bottom in pixels) along with label and score 2. Text output is sorted by rect lefts to simplify finding appropriate rects on image 3. If several class probs are > thresh for some detection, the most probable is written first and coordinates for others are not repeated 4. Rects are imprinted in image in order by their best class prob, so most probable rects are always on top and not overlayed by less probable ones 5. Most probable label for rect is always written first Also: 6. Message about low GPU memory include required amount

---
 src/image.h |  104 +++++++++++++++++++++++++++++++++++----------------
 1 files changed, 71 insertions(+), 33 deletions(-)

diff --git a/src/image.h b/src/image.h
index 1865857..d047f62 100644
--- a/src/image.h
+++ b/src/image.h
@@ -1,53 +1,91 @@
 #ifndef IMAGE_H
 #define IMAGE_H
 
-#include "opencv2/highgui/highgui_c.h"
-#include "opencv2/imgproc/imgproc_c.h"
+#include <stdlib.h>
+#include <stdio.h>
+#include <float.h>
+#include <string.h>
+#include <math.h>
+#include "box.h"
+
 typedef struct {
-    int h;
-    int w;
+	int w;
+	int h;
     int c;
-    double *data;
+    float *data;
 } image;
 
-void scale_image(image m, double s);
-void add_scalar_image(image m, double s);
+float get_color(int c, int x, int max);
+void flip_image(image a);
+void draw_box(image a, int x1, int y1, int x2, int y2, float r, float g, float b);
+void draw_box_width(image a, int x1, int y1, int x2, int y2, int w, float r, float g, float b);
+void draw_bbox(image a, box bbox, int w, float r, float g, float b);
+void draw_label(image a, int r, int c, image label, const float *rgb);
+void write_label(image a, int r, int c, image *characters, char *string, float *rgb);
+void draw_detections(image im, int num, float thresh, box *boxes, float **probs, char **names, image **labels, int classes);
+void draw_detections_v3(image im, detection *dets, int num, float thresh, char **names, image **alphabet, int classes, int ext_output);
+image image_distance(image a, image b);
+void scale_image(image m, float s);
+image crop_image(image im, int dx, int dy, int w, int h);
+image random_crop_image(image im, int w, int h);
+image random_augment_image(image im, float angle, float aspect, int low, int high, int size);
+void random_distort_image(image im, float hue, float saturation, float exposure);
+image resize_image(image im, int w, int h);
+void fill_image(image m, float s);
+void letterbox_image_into(image im, int w, int h, image boxed);
+YOLODLL_API image letterbox_image(image im, int w, int h);
+image resize_min(image im, int min);
+image resize_max(image im, int max);
+void translate_image(image m, float s);
 void normalize_image(image p);
-void z_normalize_image(image p);
-void threshold_image(image p, double t);
-void zero_image(image m);
-void rotate_image(image m);
-void subtract_image(image a, image b);
-double avg_image_layer(image m, int l);
-void embed_image(image source, image dest, int h, int w);
-image collapse_image_layers(image source, int border);
+image rotate_image(image m, float rad);
+void rotate_image_cw(image im, int times);
+void embed_image(image source, image dest, int dx, int dy);
+void saturate_image(image im, float sat);
+void exposure_image(image im, float sat);
+void distort_image(image im, float hue, float sat, float val);
+void saturate_exposure_image(image im, float sat, float exposure);
+void hsv_to_rgb(image im);
+YOLODLL_API void rgbgr_image(image im);
+void constrain_image(image im);
+void composite_3d(char *f1, char *f2, char *out, int delta);
+int best_3d_shift_r(image a, image b, int min, int max);
 
-void show_image(image p, char *name);
+image grayscale_image(image im);
+image threshold_image(image im, float thresh);
+
+image collapse_image_layers(image source, int border);
+image collapse_images_horz(image *ims, int n);
+image collapse_images_vert(image *ims, int n);
+
+void show_image(image p, const char *name);
+void show_image_normalized(image im, const char *name);
+void save_image_png(image im, const char *name);
+void save_image(image p, const char *name);
+void show_images(image *ims, int n, char *window);
 void show_image_layers(image p, char *name);
 void show_image_collapsed(image p, char *name);
+
 void print_image(image m);
 
-image make_image(int h, int w, int c);
-image make_empty_image(int h, int w, int c);
-image make_random_image(int h, int w, int c);
-image make_random_kernel(int size, int c, double scale);
-image double_to_image(int h, int w, int c, double *data);
+YOLODLL_API image make_image(int w, int h, int c);
+image make_random_image(int w, int h, int c);
+image make_empty_image(int w, int h, int c);
+image float_to_image(int w, int h, int c, float *data);
 image copy_image(image p);
-image load_image(char *filename);
+image load_image(char *filename, int w, int h, int c);
+YOLODLL_API image load_image_color(char *filename, int w, int h);
+image **load_alphabet();
 
-double get_pixel(image m, int x, int y, int c);
-double get_pixel_extend(image m, int x, int y, int c);
-void set_pixel(image m, int x, int y, int c, double val);
-
+//float get_pixel(image m, int x, int y, int c);
+//float get_pixel_extend(image m, int x, int y, int c);
+//void set_pixel(image m, int x, int y, int c, float val);
+//void add_pixel(image m, int x, int y, int c, float val);
+float bilinear_interpolate(image im, float x, float y, int c);
 
 image get_image_layer(image m, int l);
 
-void two_d_convolve(image m, int mc, image kernel, int kc, int stride, image out, int oc, int edge);
-void upsample_image(image m, int stride, image out);
-void convolve(image m, image kernel, int stride, int channel, image out, int edge);
-void back_convolve(image m, image kernel, int stride, int channel, image out, int edge);
-void kernel_update(image m, image update, int stride, int channel, image out, int edge);
-
-void free_image(image m);
+YOLODLL_API void free_image(image m);
+void test_resize(char *filename);
 #endif
 

--
Gitblit v1.10.0