我写了下面的代码:初始化矩阵
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构造函数或元素的访问方法是否有任何错误?
这是C++不是它,而不是C?他们是完全不同的语言。什么是'CvMat'?什么是'_Tchar'?你为什么使用演员? – 2012-08-12 16:35:26
CvMat是矩阵数据结构。 '_tchar'我在创建一个新项目后就这样离开了它。 (它默认显示)。但是你能告诉我主要功能'_tmain'的意思是什么? (这些东西默认显示) – 2012-08-12 18:36:30
你还没有给出你的问题的背景,我们该如何猜测这些东西?请正确标记您的问题。 – 2012-08-12 18:51:58