ImageSaveGPU.h 2.93 KB
/*******************************************************************************************
* 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