char*->IplImage、char*->Mat转换


/************************************************************************

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 {
memcpy(&pImg[j*nW*3],&pSrc->imageData[(nH-j-1)*nW*3],nW*3);
}
}
else
{
for (int j = 0; 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 {
memcpy(&pDis->imageData[(nH-j-1)*nW*3],&pImg[j*nW*3],nW*3);
}
}
else
{
for (int j = 0; 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);

你可能感兴趣的:(Learning,OpenCV)