/************************************************************************
flag==0: gray flag==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);
