我程序编译后报错cannot convert from 'struct _IplImage *' to 'struct _IplImage ** ' 是怎么回事,怎么改啊,红色行提示有错void doPCA()
{
int i;
CvTermCriteria calcLimit;
CvSize faceImgSize; // set the number of eigenvalues to use
nEigens = nTrainFaces-1; // allocate the eigenvector images
faceImgSize.width = faceImgArr[0]->width;
faceImgSize.height = faceImgArr[0]->height;
eigenVectArr = (IplImage**)cvAlloc(sizeof(IplImage*)*nEigens);
for(i=0; i<nEigens; i++)
eigenVectArr = cvCreateImage(faceImgSize, IPL_DEPTH_32F, 1); // allocate the eigenvalue array
eigenValMat = cvCreateMat( 1, nEigens, CV_32FC1); // allocate the averaged image
pAvgTrainImg = cvCreateImage(faceImgSize, IPL_DEPTH_32F,1);
// set the PCA termination criterion
calcLimit = cvTermCriteria( CV_TERMCRIT_ITER, nEigens, 1);
// compute average image, eigenvalues, and eigenvectors
cvCalcEigenObjects(
nTrainFaces,
(void*)faceImgArr,
(void*)eigenVectArr,
0,
0,
0,
&calcLimit,
pAvgTrainImg,
eigenValMat->data.fl); cvNormalize(eigenValMat, eigenValMat, 1, 0, CV_L1, 0);
}
{
int i;
CvTermCriteria calcLimit;
CvSize faceImgSize; // set the number of eigenvalues to use
nEigens = nTrainFaces-1; // allocate the eigenvector images
faceImgSize.width = faceImgArr[0]->width;
faceImgSize.height = faceImgArr[0]->height;
eigenVectArr = (IplImage**)cvAlloc(sizeof(IplImage*)*nEigens);
for(i=0; i<nEigens; i++)
eigenVectArr = cvCreateImage(faceImgSize, IPL_DEPTH_32F, 1); // allocate the eigenvalue array
eigenValMat = cvCreateMat( 1, nEigens, CV_32FC1); // allocate the averaged image
pAvgTrainImg = cvCreateImage(faceImgSize, IPL_DEPTH_32F,1);
// set the PCA termination criterion
calcLimit = cvTermCriteria( CV_TERMCRIT_ITER, nEigens, 1);
// compute average image, eigenvalues, and eigenvectors
cvCalcEigenObjects(
nTrainFaces,
(void*)faceImgArr,
(void*)eigenVectArr,
0,
0,
0,
&calcLimit,
pAvgTrainImg,
eigenValMat->data.fl); cvNormalize(eigenValMat, eigenValMat, 1, 0, CV_L1, 0);
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货