From 168af40fe9a3cc81c6ee16b3e81f154780c36bdb Mon Sep 17 00:00:00 2001 From: Scheaven <xuepengqiang> Date: 星期四, 03 六月 2021 15:03:27 +0800 Subject: [PATCH] up new v4 --- lib/detecter_tools/darknet/image_opencv.h | 266 ++++++++++++++++++++++++++-------------------------- 1 files changed, 134 insertions(+), 132 deletions(-) diff --git a/lib/detecter_tools/darknet/image_opencv.h b/lib/detecter_tools/darknet/image_opencv.h index 440de00..3aeb447 100644 --- a/lib/detecter_tools/darknet/image_opencv.h +++ b/lib/detecter_tools/darknet/image_opencv.h @@ -1,132 +1,134 @@ -#ifndef IMAGE_OPENCV_H -#define IMAGE_OPENCV_H - -#include "image.h" -#include "matrix.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef OPENCV - -// declaration -typedef void* mat_cv; -typedef void* cap_cv; -typedef void* write_cv; - -//typedef struct mat_cv mat_cv; -//typedef struct cap_cv cap_cv; -//typedef struct write_cv write_cv; - -// cv::Mat -mat_cv *load_image_mat_cv(const char *filename, int flag); -image load_image_cv(char *filename, int channels); -image load_image_resize(char *filename, int w, int h, int c, image *im); -int get_width_mat(mat_cv *mat); -int get_height_mat(mat_cv *mat); -void release_mat(mat_cv **mat); - -// IplImage - to delete -//int get_width_cv(mat_cv *ipl); -//int get_height_cv(mat_cv *ipl); -//void release_ipl(mat_cv **ipl); - -// image-to-ipl, ipl-to-image, image_to_mat, mat_to_image -//mat_cv *image_to_ipl(image im); // to delete -//image ipl_to_image(mat_cv* src_ptr); // to delete - - -// mat_cv *image_to_ipl(image im) -// image ipl_to_image(mat_cv* src_ptr) -// cv::Mat ipl_to_mat(IplImage *ipl) -// IplImage *mat_to_ipl(cv::Mat mat) -// Mat image_to_mat(image img) -// image mat_to_image(cv::Mat mat) -image mat_to_image_cv(mat_cv *mat); - -// Window -void create_window_cv(char const* window_name, int full_screen, int width, int height); -void destroy_all_windows_cv(); -int wait_key_cv(int delay); -int wait_until_press_key_cv(); -void make_window(char *name, int w, int h, int fullscreen); -void show_image_cv(image p, const char *name); -//void show_image_cv_ipl(mat_cv *disp, const char *name); -void show_image_mat(mat_cv *mat_ptr, const char *name); - -// 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); -void write_frame_cv(write_cv *output_video_writer, mat_cv *mat); -void release_video_writer(write_cv **output_video_writer); - - -//void *open_video_stream(const char *f, int c, int w, int h, int fps); -//image get_image_from_stream(void *p); -//image load_image_cv(char *filename, int channels); -//int show_image_cv(image im, const char* name, int ms); - -// Video Capture -cap_cv* get_capture_video_stream(const char *path); -cap_cv* get_capture_webcam(int index); -void release_capture(cap_cv* cap); - -mat_cv* get_capture_frame_cv(cap_cv *cap); -int get_stream_fps_cpp_cv(cap_cv *cap); -double get_capture_property_cv(cap_cv *cap, int property_id); -double get_capture_frame_count_cv(cap_cv *cap); -int set_capture_property_cv(cap_cv *cap, int property_id, double value); -int set_capture_position_frame_cv(cap_cv *cap, int index); - -// ... Video Capture -image get_image_from_stream_cpp(cap_cv *cap); -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_letterbox(cap_cv *cap, int w, int h, int c, mat_cv** in_img, int dont_close); - - -// Image Saving -void save_cv_png(mat_cv *img, const char *name); -void save_cv_jpg(mat_cv *img, const char *name); - -// 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); - -// Draw Loss & Accuracy chart -mat_cv* draw_train_chart(char *windows_name, float max_img_loss, int max_batches, int number_of_lines, int img_size, int dont_show, char* chart_path); -void draw_train_loss(char *windows_name, mat_cv* img, int img_size, float avg_loss, float max_img_loss, int current_batch, int max_batches, - float precision, int draw_precision, char *accuracy_name, int dont_show, int mjpeg_port, double time_remaining); - -// Data augmentation -image image_data_augmentation(mat_cv* mat, int w, int h, - int pleft, int ptop, int swidth, int sheight, int flip, - float dhue, float dsat, float dexp, - int gaussian_noise, int blur, int num_boxes, float *truth); - -// blend two images with (alpha and beta) -void blend_images_cv(image new_img, float alpha, image old_img, float beta); - -// bilateralFilter bluring -image blur_image(image src_img, int ksize); - -// draw objects for Adversarial attacks -void cv_draw_object(image sized, float *truth_cpu, int max_boxes, int num_truth, int *it_num_set, float *lr_set, int *boxonly, int classes, char **names); - -// Show Anchors -void show_acnhors(int number_of_boxes, int num_of_clusters, float *rel_width_height_array, model anchors_data, int width, int height); - -void show_opencv_info(); - -#else // OPENCV - -void show_opencv_info(); -int wait_key_cv(int delay); -int wait_until_press_key_cv(); -void destroy_all_windows_cv(); - -#endif // OPENCV - -#ifdef __cplusplus -} -#endif - -#endif // IMAGE_OPENCV_H +#ifndef IMAGE_OPENCV_H +#define IMAGE_OPENCV_H + +#include "image.h" +#include "matrix.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENCV + +// declaration +typedef void* mat_cv; +typedef void* cap_cv; +typedef void* write_cv; + +//typedef struct mat_cv mat_cv; +//typedef struct cap_cv cap_cv; +//typedef struct write_cv write_cv; + +// cv::Mat +mat_cv *load_image_mat_cv(const char *filename, int flag); +image load_image_cv(char *filename, int channels); +image load_image_resize(char *filename, int w, int h, int c, image *im); +int get_width_mat(mat_cv *mat); +int get_height_mat(mat_cv *mat); +void release_mat(mat_cv **mat); + +// IplImage - to delete +//int get_width_cv(mat_cv *ipl); +//int get_height_cv(mat_cv *ipl); +//void release_ipl(mat_cv **ipl); + +// image-to-ipl, ipl-to-image, image_to_mat, mat_to_image +//mat_cv *image_to_ipl(image im); // to delete +//image ipl_to_image(mat_cv* src_ptr); // to delete + + +// mat_cv *image_to_ipl(image im) +// image ipl_to_image(mat_cv* src_ptr) +// cv::Mat ipl_to_mat(IplImage *ipl) +// IplImage *mat_to_ipl(cv::Mat mat) +// Mat image_to_mat(image img) +// image mat_to_image(cv::Mat mat) +image mat_to_image_cv(mat_cv *mat); + +// Window +void create_window_cv(char const* window_name, int full_screen, int width, int height); +void resize_window_cv(char const* window_name, int width, int height); +void destroy_all_windows_cv(); +int wait_key_cv(int delay); +int wait_until_press_key_cv(); +void make_window(char *name, int w, int h, int fullscreen); +void show_image_cv(image p, const char *name); +//void show_image_cv_ipl(mat_cv *disp, const char *name); +void show_image_mat(mat_cv *mat_ptr, const char *name); + +// 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); +void write_frame_cv(write_cv *output_video_writer, mat_cv *mat); +void release_video_writer(write_cv **output_video_writer); + + +//void *open_video_stream(const char *f, int c, int w, int h, int fps); +//image get_image_from_stream(void *p); +//image load_image_cv(char *filename, int channels); +//int show_image_cv(image im, const char* name, int ms); + +// Video Capture +cap_cv* get_capture_video_stream(const char *path); +cap_cv* get_capture_webcam(int index); +void release_capture(cap_cv* cap); + +mat_cv* get_capture_frame_cv(cap_cv *cap); +int get_stream_fps_cpp_cv(cap_cv *cap); +double get_capture_property_cv(cap_cv *cap, int property_id); +double get_capture_frame_count_cv(cap_cv *cap); +int set_capture_property_cv(cap_cv *cap, int property_id, double value); +int set_capture_position_frame_cv(cap_cv *cap, int index); + +// ... Video Capture +image get_image_from_stream_cpp(cap_cv *cap); +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_letterbox(cap_cv *cap, int w, int h, int c, mat_cv** in_img, int dont_close); +void consume_frame(cap_cv *cap); + +// Image Saving +void save_cv_png(mat_cv *img, const char *name); +void save_cv_jpg(mat_cv *img, const char *name); + +// 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); + +// Draw Loss & Accuracy chart +mat_cv* draw_train_chart(char *windows_name, float max_img_loss, int max_batches, int number_of_lines, int img_size, int dont_show, char* chart_path); +void draw_train_loss(char *windows_name, mat_cv* img, int img_size, float avg_loss, float max_img_loss, int current_batch, int max_batches, + float precision, int draw_precision, char *accuracy_name, float contr_acc, int dont_show, int mjpeg_port, double time_remaining); + +// Data augmentation +image image_data_augmentation(mat_cv* mat, int w, int h, + int pleft, int ptop, int swidth, int sheight, int flip, + float dhue, float dsat, float dexp, + int gaussian_noise, int blur, int num_boxes, int truth_size, float *truth); + +// blend two images with (alpha and beta) +void blend_images_cv(image new_img, float alpha, image old_img, float beta); + +// bilateralFilter bluring +image blur_image(image src_img, int ksize); + +// draw objects for Adversarial attacks +void cv_draw_object(image sized, float *truth_cpu, int max_boxes, int num_truth, int *it_num_set, float *lr_set, int *boxonly, int classes, char **names); + +// Show Anchors +void show_acnhors(int number_of_boxes, int num_of_clusters, float *rel_width_height_array, model anchors_data, int width, int height); + +void show_opencv_info(); + +#else // OPENCV + +void show_opencv_info(); +int wait_key_cv(int delay); +int wait_until_press_key_cv(); +void destroy_all_windows_cv(); +void resize_window_cv(char const* window_name, int width, int height); + +#endif // OPENCV + +#ifdef __cplusplus +} +#endif + +#endif // IMAGE_OPENCV_H -- Gitblit v1.8.0