简单的实现了三通道,1通道和别的通道类似
bool Mirror(Mat &img)
{
if(!img.data)
return false;
unsigned char *pSrc = NULL,*pDst = NULL;
int w = img.cols;
int h = img.rows;
int cn = img.channels();
Mat img_mirror = img.clone();
int wdt = (w-1)*cn;
pSrc = img_mirror.data + wdt;
pDst = img.data;
switch (cn)
{
case 3:
for (int y=0;y<h;y++)
{
for (int x=0;x<w*cn;x+=3)
{
*(pDst+x+0) = *(pSrc -x + 0);
*(pDst+x+1) = *(pSrc -x + 1);
*(pDst+x+2) = *(pSrc -x + 2);
}
pDst += w*cn;
pSrc += w*cn;
}
break;
case 1:
break;
default:
break;
}
return true;
}