我想找到图像数据集的协方差矩阵。为此我编写了以下代码:
int main()
{
IplImage** dataset=new IplImage*[400];
CvArr* cov_result = cvCreateMat(10304,10304,CV_64FC1);
CvArr* mean_result = cvCreateMat(10304,10304,CV_64FC1);
char* temp=new char[20];
char* x=new char[3];
char* y=new char[3];
for (int i=0;i<40;i++)
for (int j=0;j<10;j++)
{
itoa(i+1,x,10);
itoa(j+1,y,10);
strcpy(temp,"orl_faces\\s");
strcat(temp,x);
strcat(temp,"\\");
strcat(temp,y);
strcat(temp,".pgm");
dataset[i]=cvLoadImage(temp,1);
}``
cvCalcCovarMatrix((constvoid**)dataset,400,cov_result,mean_result,CV_COVAR_NORMAL);
return 0;
}
它从特定目录加载图像并以 iplimage* 格式写入。但是当我试图计算协方差时,我得到了一个错误。我的代码有什么问题?谁能帮助我?