代码如下:
IplImage* img=cvLoadImage("*.bmp",-1);
CvMat tmp_mat,*mat=NULL;
mat=cvGetMat(img,&tmp_mat);
int row,column,i,j;
row=img->height;
column=img->width;
for(i=0;i<row;i++)
{
for(j=0;j<column;j++)
{
printf("%d ",(int)cvmGet(mat,i,j));
}
}
……
循环如果超过一定的数量,程序崩溃。如row=10,column=10,结果正常;但如果row=100,column=100,则程序会崩溃。不明原因中...
推荐打印数组的处理方法:先将CvMat矩阵里面的纯数据提取出来,然后再用通用的c/c++语句打印数据。
代码如下:
IplImage* img=cvLoadImage("*.bmp",-1);
CvMat tmp_mat,*mat=NULL;
mat=cvGetMat(img,&tmp_mat);
int row,column,i,j;
row=img->height;
column=img->width;
double tmp[row][column];
for (i = 0; i< row; i++)
{
for(j=0;j<column;j++)
{
tmp[i][j] = (int)fabs(*(img->imageData+i*row+j));
}
}
for(i=0;i<row;i++)
{
for(j=0;j<column;j++)
{
printf("%f ",tmp[i][j]);
}
}
……