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

来源:互联网 发布:win10平板清理软件 编辑:程序博客网 时间:2024/06/08 16:24


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

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);

原创粉丝点击