/************************************************************************
flag==0: grayflag==1: rgb
************************************************************************/
void CCvImg::IplImg2unchar(IplImage *pSrc, unsigned char *pImg, int nW, int nH,BOOL Flag)
{
if (Flag)
{
for (int j = 0; j<nH; j++)
{
memcpy(&pImg[j*nW*3],&pSrc->imageData[(nH-j-1)*nW*3],nW*3);
}
}
else
{
for (int j = 0; j<nH; j++)
{
memcpy(&pImg[j*nW],&pSrc->imageData[(nH-j-1)*nW],nW);
}
}
}
/************************************************************************
Flag==0: gray
Flag==1: rgb
************************************************************************/
void CCvImg::Unchar2IplImg(unsigned char *pImg, IplImage *pDis, int nW, int nH,BOOL Flag)
{
if (Flag)
{
for (int j = 0; j<nH; j++)
{
memcpy(&pDis->imageData[(nH-j-1)*nW*3],&pImg[j*nW*3],nW*3);
}
}
else
{
for (int j = 0; j<nH; j++)
{
memcpy(&pDis->imageData[(nH-j-1)*nW],&pImg[j*nW],nW);
}
}
}
char*->Mat
Mat mImage;
mImage.create(H, W, 8UC3);
memcpy(mImage.data, pImage, W * H * 3);