读取多通道矩阵数据
int main()
{
float data[]=
{
1,2,3,4,2,6,
5,6,7,8,7,9,
1,9,4,6,5,7
};
CvMat mat;
cvInitMatHeader(&mat,3,3,CV_32FC2,data);
int channel_count=2;
for (int y=0;y<mat.rows;y++)
{
float* p_data=(float*)(mat.data.ptr+mat.step*y);
for(int x=0;x<mat.cols;x++)
{
float value[2];
value[0]=*(p_data+x*channel_count);
value[1]=*(p_data+x*channel_count+1);
cout<<"("<<value[0]<<" "<<value[1]<<")"<<" ";
}
cout<<endl;
}
return 0;
int main()
{
float data[]=
{
1,2,3,4,2,6,
5,6,7,8,7,9,
1,9,4,6,5,7
};
CvMat mat;
cvInitMatHeader(&mat,3,3,CV_32FC2,data);
int channel_count=2;
for (int y=0;y<mat.rows;y++)
{
float* p_data=(float*)(mat.data.ptr+mat.step*y);
for(int x=0;x<mat.cols;x++)
{
float value[2];
value[0]=*(p_data+x*channel_count);
value[1]=*(p_data+x*channel_count+1);
cout<<"("<<value[0]<<" "<<value[1]<<")"<<" ";
}
cout<<endl;
}
return 0;
}
读取单通道矩阵数据
int main()
{
float data[]=
{
1,2,3,4,2,6,
5,6,7,8,7,9,
1,9,4,6,5,7
};
CvMat mat;
cvInitMatHeader(&mat,3,6,CV_32FC1,data);
for (int y=0;y<mat.rows;y++)
{
float* p_data=(float*)(mat.data.ptr+mat.step*y);
for(int x=0;x<mat.cols;x++)
{
float value=*(p_data+x);
cout<<value<<" ";
}
cout<<endl;
}
return 0;
}