IplImage * BmpTOIpl(int width,int height,unsigned char *pBuffer)
{
IPlImage *image =cvCreateImage(cvSize(width,height),8,1);
image->imageData=pBuffer;
return image;
}
IplImage* GetIplFromBmp(BYTE* pBmp, DWORD size)
{
BYTE* p = pBmp;
BITMAPFILEHEADER fheader;
memcpy(&fheader, p, sizeof(BITMAPFILEHEADER));
BITMAPINFOHEADER bmphdr;
p += sizeof(BITMAPFILEHEADER);
memcpy(&bmphdr, p, sizeof(BITMAPINFOHEADER));
int w = bmphdr.biWidth;
int h = bmphdr.biHeight;
p = pBmp + fheader.bfOffBits;
//reverse(p, w, h);
IplImage* pIpl = cvCreateImage(cvSize(w,h),8,3);
memcpy(pIpl->imageData, p, w * h * 3 *sizeof(char));
return pIpl;
}
{
IPlImage *image =cvCreateImage(cvSize(width,height),8,1);
image->imageData=pBuffer;
return image;
}
IplImage* GetIplFromBmp(BYTE* pBmp, DWORD size)
{
BYTE* p = pBmp;
BITMAPFILEHEADER fheader;
memcpy(&fheader, p, sizeof(BITMAPFILEHEADER));
BITMAPINFOHEADER bmphdr;
p += sizeof(BITMAPFILEHEADER);
memcpy(&bmphdr, p, sizeof(BITMAPINFOHEADER));
int w = bmphdr.biWidth;
int h = bmphdr.biHeight;
p = pBmp + fheader.bfOffBits;
//reverse(p, w, h);
IplImage* pIpl = cvCreateImage(cvSize(w,h),8,3);
memcpy(pIpl->imageData, p, w * h * 3 *sizeof(char));
return pIpl;
}