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_
|