19,468
社区成员
发帖
与我相关
我的任务
分享
函数申明为
void __stdcall ConvertBayer2Rgb(BYTE *pDest,BYTE *pSrce, int nWid,int nHei,HV_BAYER_CONVERT_TYPE cvtype,BYTE* pLutR,BYTE* pLutG, BYTE* pLutB,bool bFlip,HV_BAYER_LAYOUT Layout);
参数
/*
\brief bayer图像转换成RGB图像函数
\param pDest [out]数据输出buffer指针(24位RGB图像)
\param pSrce [in]数据输入buffer指针(8位Raw图像)
\param nWid [in]图像宽
\param nHei [in]图像高
\param cvtype [in]插值算法类型
\param pLutR [in]R分量数字增益查找表
\param pLutG [in]G分量数字增益查找表
\param pLutB [in]B分量数字增益查找表
\param bFlip [in]图像翻转标记 true:翻转 false:不翻转
\param Layout [in]bayer类型
return void
*/
//--------------------------------------------------
定义函数
ConvertBayer2Rgb(m_pImageBuffer,m_pRawBuffer,Width,Height,ConvertType,
m_pLutR,m_pLutG,m_pLutB,true,m_Layout);
BYTE m_pLutR[256] ;
BYTE m_pLutG[256] ;
BYTE m_pLutB[256] ;
for(int i=0;i<256;i++)
{
m_pLutR[i] = i;
m_pLutG[i] = i;
m_pLutB[i] = i;
}
for(row=0;row<Rect;row++)
for(column=0;column<Rect;column++) //Rect=20
{
temp=((Height-y-row)*Width+x+column)*3;
if((*(m_pImageBuffer+temp)>= 100) && (*(m_pImageBuffer+temp+1)>= 200) && (*(m_pImageBuffer+temp+2)>= 200))
{
iCount++;
}
}
//Height(480)和Width(640)是图像的高和宽,x=FirstX + column * offetx; y=FirstY + row * offetx
for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
R[i][j]=?m_pImageBuffer?
G[i][j]=??m_pImageBuffer??
B[i][j]=???m_pImageBuffer???
可以这样取得每个点的RGB值吗?void __stdcall Raw12PackedToRaw16(BYTE* pInBuf, BYTE* pOutBuf,int iWidth, int iHeight);
void __stdcall Raw10PackedToRaw16(BYTE* pInBuf, BYTE* pOutBuf,int iWidth, int iHeight);
void __stdcall ROIColorCorrection( void *pImg, int roi_left, int roi_top, int roi_wid, int roi_hei, int nImgWid, int nImgHei);HVSTATUS __stdcall HVRotate90CW8B(const BYTE* pInputBuffer, int nWidth, int nHeight, BYTE* pOutputBuffer);
HVSTATUS __stdcall HVRotate90CCW8B(const BYTE* pInputBuffer, int nWidth, int nHeight, BYTE* pOutputBuffer);
HVSTATUS __stdcall HVBrightness(BYTE* pInputBuffer,int nImagesize, int nFactor,BYTE* pOutputBuffer);
HVSTATUS __stdcall HVContrast(BYTE* pInputBuffer,int nImagesize, int nFactor,BYTE* pOutputBuffer);
HVSTATUS __stdcall HVSharpen24B(BYTE* pInputBuffer,int nWidth,int nHeight,float factor,BYTE* pOutputBuffer);
HVSTATUS __stdcall HVSaturation(BYTE* pInputBuffer,int nImagesize, int nFactor,BYTE* pOutputBuffer);
void __stdcall ConvertBayer2Rgb(BYTE *pDest,BYTE *pSrce, int nWid,int nHei,HV_BAYER_CONVERT_TYPE cvtype,BYTE* pLutR,BYTE* pLutG, BYTE* pLutB,bool bFlip,HV_BAYER_LAYOUT Layout);
void __stdcall GetWhiteBalanceRatio(BYTE *pSrce,int nWid,int nHei,double* dRatioR,double* dRatioG,double* dRatioB);
void __stdcall SetGammaLut(BYTE pLutGamma[256],double dGammaRatio);
void __stdcall DetectDeadPixel(BYTE * pRawImgBuf,BYTE * pBadPixelPosBuf,int nImgWid,int nImgHei);
void __stdcall EraseDeadPixel(BYTE * pRawImgBuf,BYTE * pBadPixelPosBuf,int nXPos,int nYPos,int nImgWid,int nImgHei,int nBadPixelBufWid,int nBadPixelBufHei);
HVSTATUS __stdcall HVDetectRawDeadPos(BYTE *pRawImgBuf,BYTE *pBadPixelPosBuf,int nImgWid,int nImgHei,int nBitNum);
HVSTATUS __stdcall HVCorrectRawBadPos(BYTE *pRawImgBuf,BYTE *pBadPixelPosBuf,int nImgWid,int nImgHei,int nBitNum);
HVSTATUS __stdcall HVAutoRawDefectivePixelCorrect(BYTE *pRawImgBuf,int nImgWid,int nImgHei,int nBitNum);
void __stdcall GetPatternNoise(BYTE * pRawImgBuf,int * pPatternBuf,int nPatternWid,int nPatternHei);
void __stdcall AvgPatternNoise(int * pPatternBuf,int nPatternWid,int nPatternHei,int nAvgTimes);
void __stdcall FixPatternNoise(BYTE * pRawImgBuf,int * pPatternBuf,int nXPos,int nYPos,int nImgWid,int nImgHei,int nPatternWid,int nPatternHei);
void __stdcall SetBadPixelThreshold(int BadPixelThreshold);
void __stdcall HVConvert(HV_CONVERT_CODE ConvertCode, void *pContext, int *pLength);