146 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			146 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|  | /*
 | |||
|  | 
 | |||
|  |  */ | |||
|  | 
 | |||
|  | #ifndef TOOL_H_
 | |||
|  | #define TOOL_H_
 | |||
|  | //<2F>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD>
 | |||
|  | #include "stdio.h"
 | |||
|  | #include "string.h"
 | |||
|  | #include "stdlib.h"
 | |||
|  | 
 | |||
|  | #ifdef __cplusplus
 | |||
|  | extern "C" { | |||
|  | #endif
 | |||
|  | #define YUV420	0
 | |||
|  | #define YUV422 	YUV420 	+ 1
 | |||
|  | #define YUV444 	YUV422 	+ 1
 | |||
|  | /*************************************************************
 | |||
|  | Function:       ReadBmpFile | |||
|  | Description:    <EFBFBD><EFBFBD>ȡbmpͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD> | |||
|  | Input:          pFilePath<EFBFBD><EFBFBD>bmp<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD> | |||
|  |                 pData<EFBFBD><EFBFBD>rgbͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ָ<EFBFBD>룬rgbͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD>Ϊbgrbgr...bgr<EFBFBD><EFBFBD>rgbֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ8bit | |||
|  | 				width<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | |||
|  | 				height<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | |||
|  | Output:         <EFBFBD><EFBFBD> | |||
|  | *************************************************************/ | |||
|  | extern void ReadBmpFile(char *pFilePath, unsigned char *pData, int & width, int & height); | |||
|  | /*************************************************************
 | |||
|  | Function:       SaveBmpFile | |||
|  | Description:    <EFBFBD><EFBFBD>rgbͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><EFBFBD><EFBFBD>Ϊbmp | |||
|  | Input:          pFilePath<EFBFBD><EFBFBD>bmp<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD> | |||
|  |                 pData<EFBFBD><EFBFBD>rgbͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ָ<EFBFBD>룬rgbͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD>Ϊbgrbgr...bgr<EFBFBD><EFBFBD>rgbֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ8bit | |||
|  | 				width<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | |||
|  | 				height<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | |||
|  | Output:         <EFBFBD><EFBFBD> | |||
|  | *************************************************************/ | |||
|  | extern void SaveBmpFile(char *pFilePath, unsigned char *pData, int width, int height); | |||
|  | /*************************************************************
 | |||
|  | Function:       SaveRaw | |||
|  | Description:    <EFBFBD><EFBFBD><EFBFBD><EFBFBD>rawͼ | |||
|  | Input:          pSavePath<EFBFBD><EFBFBD>raw<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD> | |||
|  |                 pData<EFBFBD><EFBFBD>raw<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | |||
|  | 				width<EFBFBD><EFBFBD>rawͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | |||
|  | 				height<EFBFBD><EFBFBD>rawͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | |||
|  | Output:         <EFBFBD><EFBFBD> | |||
|  | *************************************************************/ | |||
|  | extern void SaveRaw(char *pSavePath, short *pRawData, int width, int height); | |||
|  | 
 | |||
|  | extern void SaveRaw32bit(char *pSavePath, long *pRawData, int width, int height); | |||
|  | 
 | |||
|  | /*************************************************************
 | |||
|  | Function:       SaveBmpFile2 | |||
|  | Description:    <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8bit<EFBFBD><EFBFBD>bmpͼ<EFBFBD><EFBFBD> | |||
|  | Input:          pFilePath<EFBFBD><EFBFBD>bmp<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD> | |||
|  | 				width<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | |||
|  | 				height<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | |||
|  | 				bitValue<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD> | |||
|  | 				pRGBData<EFBFBD><EFBFBD>rgbͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ָ<EFBFBD>룬rgbͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD>Ϊbgrbgr...bgr | |||
|  | Output:         <EFBFBD><EFBFBD> | |||
|  | *************************************************************/ | |||
|  | extern void SaveBmpFile2(char *pFilePath, int width, int height, int bitValue, short *pRGBData); | |||
|  | 
 | |||
|  | /*************************************************************
 | |||
|  | Function:       SaveYUVData | |||
|  | Description:    <EFBFBD><EFBFBD><EFBFBD><EFBFBD>8bit YUVͼ | |||
|  | Input:          pSavePath<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD> | |||
|  |                 pData<EFBFBD><EFBFBD>yuv<EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>8bit<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD>yyy...yyyuuu...uuuvvv...vvv | |||
|  | 				width<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | |||
|  | 				height<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | |||
|  | Output:         <EFBFBD><EFBFBD> | |||
|  | *************************************************************/ | |||
|  | extern void SaveYUVData(char *pSavePath, unsigned char *pData, int width, int height); | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | /*************************************************************
 | |||
|  | Function:       SaveYUVData2 | |||
|  | Description:    <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8bit<EFBFBD><EFBFBD>YUVͼ | |||
|  | Input:          pSavePath<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD> | |||
|  |                 pData<EFBFBD><EFBFBD>yuv<EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8bit<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD>yyy...yyyuuu...uuuvvv...vvv | |||
|  | 				width<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | |||
|  | 				height<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | |||
|  | Output:         <EFBFBD><EFBFBD> | |||
|  | *************************************************************/ | |||
|  | extern void SaveYUVData2(char *pSavePath, short *pData, int width, int height, int bitValue); | |||
|  | /*************************************************************
 | |||
|  | Function:       SaveYUVData1 | |||
|  | Description:    <EFBFBD><EFBFBD><EFBFBD><EFBFBD>8bit YUV420ͼ | |||
|  | Input:          pSavePath<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD> | |||
|  |                 pData<EFBFBD><EFBFBD>yuv<EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>8bit<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD>yyy...yyyuuu...uuuvvv...vvv | |||
|  | 				width<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | |||
|  | 				height<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | |||
|  | Output:         <EFBFBD><EFBFBD> | |||
|  | *************************************************************/ | |||
|  | extern void SaveYUVData1(char *pSavePath, unsigned char *pData, int width, int height, int fmt); | |||
|  | /*************************************************************
 | |||
|  | Function:       ReadYUVData1 | |||
|  | Description:    <EFBFBD><EFBFBD>ȡ8bit YUV420ͼ | |||
|  | Input:          pReadPath<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD> | |||
|  |                 pData<EFBFBD><EFBFBD>yuv<EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>8bit<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD>yyy...yyyuuu...uuuvvv...vvv | |||
|  | 				width<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | |||
|  | 				height<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | |||
|  | Output:         <EFBFBD><EFBFBD> | |||
|  | *************************************************************/ | |||
|  | extern void ReadYUVData1(char *pReadPath, unsigned char *pData, int width, int height, int fmt); | |||
|  | /*************************************************************
 | |||
|  | Function:     Yuvfmtconv | |||
|  | Description:    yuv fmt conversion.444 420 422 to 444 420 422 | |||
|  | Input:   	pDatain <EFBFBD><EFBFBD><EFBFBD>뻺<EFBFBD><EFBFBD> | |||
|  | 		pDataout <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | |||
|  | 		width <EFBFBD><EFBFBD> | |||
|  | 		height <EFBFBD><EFBFBD> | |||
|  | 		fmt_in <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ | |||
|  | 		fmt_out <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ | |||
|  | Output:	      <EFBFBD><EFBFBD> | |||
|  | *************************************************************/ | |||
|  | extern void Yuvfmtconv(void *pDatain, void *pDataout, int width, int height, int fmt_in, int fmt_out, int size); | |||
|  | /*************************************************************
 | |||
|  | Function:     Yuvbitstochar | |||
|  | Description:    save yuv to 8 bitdepth | |||
|  | Input:   	pDatain <EFBFBD><EFBFBD><EFBFBD>뻺<EFBFBD><EFBFBD> | |||
|  | 		pDataout <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | |||
|  | 		size yuv<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | |||
|  | 		height <EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD> | |||
|  | Output:	      <EFBFBD><EFBFBD> | |||
|  | *************************************************************/ | |||
|  | extern void Yuvbitstochar(short *pDatain, unsigned char *pDataout, int size,  int bitdepth); | |||
|  | 
 | |||
|  | /*************************************************************
 | |||
|  | Function:       SaveCfaBmp | |||
|  | Description:    <EFBFBD><EFBFBD>raw<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>cfaͼ<EFBFBD><EFBFBD> | |||
|  | Input:          pRawData<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>rawͼ<EFBFBD><EFBFBD> | |||
|  |                 width<EFBFBD><EFBFBD>rawͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | |||
|  | 				height<EFBFBD><EFBFBD>rawͼ<EFBFBD>ߣ<EFBFBD> | |||
|  | 				bayerPattern<EFBFBD><EFBFBD>bayer pattern<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD>ȡֵ<EFBFBD><EFBFBD>Χ[0<EFBFBD><EFBFBD>3]<EFBFBD><EFBFBD> | |||
|  | 				bitValue<EFBFBD><EFBFBD>raw<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | |||
|  | Output:         <EFBFBD><EFBFBD> | |||
|  | *************************************************************/ | |||
|  | extern void SaveCfaBmp(char *pFilePath, short *pRawData, int width, int height, int bayerPattern, int bitValue); | |||
|  | 
 | |||
|  | #ifdef __cplusplus
 | |||
|  | } | |||
|  | #endif
 | |||
|  | 
 | |||
|  | #endif  // TOOL_H_
 |