Я хочу найти ковариационную матрицу набора данных изображений. Для этого я написал этот код:
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 *.
но когда я пытаюсь вычислить ковариацию, я получаю сообщение об ошибке. Что не так в моем коде? Кто-нибудь может мне помочь?
Задача ещё не решена.
Других решений пока нет …