看了一天的cvmat介绍,既然没看懂通道什么意思。自己编写了一个小程序验证了通道的用法,
CvMat* mat = cvCreateMat(3,3,CV_32FC3);
cvZero(mat);
float *p = (float*)cvPtr2D(mat, 0, 0);
for(int i = 0; i < 9; i++)
{
*p = (float)i*10;
p++;
*p = (float)i*10+1;
p++;
*p = (float)i*10+2;
p++;
}
p = (float*)cvPtr2D(mat, 0, 0);
for(int i = 0; i < 9; i++)
{
printf("%d,%d,%d\t",(int)*p,(int)*(p+1),(int)*(p+2));
p+=3;
if((i+1) % 3 == 0)
printf("\n");
}
return 0;
}
运行结果为:
mat是三行三列,开始以为一个元素只存储一个数值,后来才明白过来!嗨。。。