/******************************************************************************************* * Version: VPT_x64_V2.0.0_20170904 * CopyRight: 中科院自动化研究所模式识别实验室图像视频组 * UpdateDate: 20170904 * Content: 人车物监测跟踪 ********************************************************************************************/ #ifndef IMAGESAVEGPU_H_ #define IMAGESAVEGPU_H_ #ifdef _MSC_VER #ifdef IMAGESAVEGPU_EXPORTS #define IMAGESAVEGPU_API __declspec(dllexport) #else #define IMAGESAVEGPU_API __declspec(dllimport) #endif #else #define IMAGESAVEGPU_API __attribute__((visibility ("default"))) #endif // 功能:保存成jpeg文件 // szOutputFile 输出图片路径,如D:\\out.jpg // d_srcRGB 输入RGB数据,由cudaMalloc分配的显存空间,数据排列形式为:BBBBBB......GGGGGG......RRRRRRRR...... // img_width RGB数据图片的宽度 // img_height RGB数据图片的高度 // //IMAGESAVEGPU_API int saveJPEG(const char *szOutputFile, float* d_srcRGB, int img_width, int img_height); //IMAGESAVEGPU_API int saveJPEG(const char *szOutputFile, float* d_srcRGB); // //IMAGESAVEGPU_API int saveJPEG(const char *szOutputFile, unsigned char* d_srcRGB, int img_width, int img_height); //IMAGESAVEGPU_API int saveJPEG(const char *szOutputFile, unsigned char* d_srcRGB); // 功能:防缩图像 IMAGESAVEGPU_API int resizeFrame(float* d_srcRGB, int src_width, int src_height, float* d_dstRGB, int dst_width, int dst_height); // 功能:部分拷贝数据 IMAGESAVEGPU_API int partMemCopy(unsigned char* d_srcRGB, int src_width, int src_height, unsigned char* d_dstRGB, int left, int top, int right, int bottom); //IMAGESAVEGPU_API int partMemResizeImage(float * d_srcRGB, int src_width, int src_height, unsigned char** d_dstRGB, // int* vleft, int * vtop, int* vright, int* vbottom, int *dst_w, int *dst_h, // float submeanb, float submeang, float submeanr, // float varianceb, float varianceg, float variancer); IMAGESAVEGPU_API int PartMemResizeBatch(unsigned char * d_srcRGB, int src_width, int src_height, unsigned char** d_dstRGB, int count, int* vleft, int * vtop, int* vright, int* vbottom, int *dst_w, int *dst_h, float submeanb, float submeang, float submeanr, float varianceb, float varianceg, float variancer); //// 功能:初始化GPU保存图像的各种量化表 //IMAGESAVEGPU_API int initTables(); //IMAGESAVEGPU_API int initTables(int falg, int width, int height); // //// 功能:释放资源 //IMAGESAVEGPU_API int releaseJpegSaver(); // 功能:在GPU中绘制快照包围框 IMAGESAVEGPU_API int drawImageOnGPU(float* d_srcRGB, int src_width, int src_height, int left, int top, int right, int bottom); IMAGESAVEGPU_API int drawImageOnGPU(unsigned char* d_srcRGB, int src_width, int src_height, int left, int top, int right, int bottom); // 功能:在GPU中绘制直线 IMAGESAVEGPU_API int drawLineOnGPU(float* d_srcRGB, int src_width, int src_height, int begin_x, int begin_y, int end_x, int end_y); #endif