我写了以下代码:
int _tmain(int argc, _TCHAR* argv[])
{
int vals[]={1,2,3,4,5,6,7,8,9};
CvMat mat = cvMat(3,3,CV_8UC1,vals);
for(int i=0;i<mat.rows;i++)
{
    int* ptr = (int*) (mat.data.ptr + i* mat.step);
    for(int j=0;j<mat.cols;j++)
    {
                printf("%d\t",*ptr++);
    }
    printf("\n");
}
return 0;
}
我得到的输出是:
1              2               3
512            768             1024
196608         262144          327680
矩阵未正确初始化。指针ptr指向每一行的开头并递增它给出相应列中的元素。我的假设正确吗?使用的 cvMat 构造函数或元素的访问方法是否有错误?