错误C3861:&x27;cropImage';*:找不到标识符 在开发一个C++应用程序进行人脸认证时,我遇到了 错误: C3861: 'cropImage'*: identifier not found

错误C3861:&x27;cropImage';*:找不到标识符 在开发一个C++应用程序进行人脸认证时,我遇到了 错误: C3861: 'cropImage'*: identifier not found,c++,opencv,C++,Opencv,这是cropImage的签名: IplImage* cropImage(IplImage *img,CvRect region); 我尝试在以下函数中调用它: IplImage *cropFace(IplImage * image, CvPoint eye_left, CvPoint eye_right, double offset_pct[2], CvSize dest_sz) {//calculate offsets in original image ... //matr

这是cropImage的签名:

IplImage* cropImage(IplImage *img,CvRect region);
我尝试在以下函数中调用它:

IplImage *cropFace(IplImage * image, CvPoint eye_left, CvPoint eye_right, double offset_pct[2], CvSize dest_sz)
{//calculate offsets in original image
    ...
    //matrice de rotation
    cv::Mat affine_matrix;
    affine_matrix = cv::getRotationMatrix2D(eye_left, rotation, scale);
    //mtx est la conversion de image IplImage* en matrice mtx
    cv::Mat mtx = cv::Mat(image, true);
    cv::Mat mtx2;
    cv::warpAffine(mtx, mtx2, affine_matrix, mtx.size(), cv::INTER_LINEAR,       cv::BORDER_CONSTANT, cv::Scalar::all(255));
    //mtx est la conversion de matrice mtx2 en image IplImage*
    IplImage image1 = mtx2;
    //crop the rotated image
    double crop_x = eye_left.x - scale * offset_h;
    double crop_y = eye_left.y - scale * offset_v;
    double crop_size0 = dest_sz.width * scale;
    double crop_size1 = dest_sz.height * scale;
    CvRect region;
    region.x = cvFloor(crop_y);
    region.y = cvFloor(crop_y);
    region.width = cvFloor(crop_size0);
    region.height = cvFloor(crop_size1);
    //the problem in this ligne,it seems it has not known cropImage !! :(
    IplImage *image2 = cropImage(&image1, region);
    IplImage *image3 = resizeImage(image2, dest_sz.width, dest_sz.width);
    return image3;
}      

我认为IplImage*和Mat之间的转换导致了这个问题

问题似乎是你指出的。即使
图像
已经是指针类型,您仍使用
&
符号解除对它的引用,从而导致双指针。你应该简单地尝试:

IplImage *image2 = cropImage(image1, region);

问题似乎是你指出的。即使
图像
已经是指针类型,您仍使用
&
符号解除对它的引用,从而导致双指针。你应该简单地尝试:

IplImage *image2 = cropImage(image1, region);

只是一个提示-如果需要一个紧急的解决方案,也许你应该考虑花钱请人帮你解决。EN Plus,LangLangueSuffeleC.EnthEngLeas,所以你应该考虑用英语发布你的错误信息,或者至少翻译/描述它。只是一个提示——如果需要一个紧急的解决方案,也许你应该考虑花钱找个人帮你解决。EN Plus,La LangueSuffele ICI EnthEngLeas,所以你应该考虑用英语发布你的错误信息或者至少翻译/描述它。我有一个参数是image1,它的参数是IplImage,这就是为什么我把&image1。在所有情况下,我都通过写:IplImage image1=mtx2;//mtx2,其类型cv:Mat IplImage*im22=(IplImage*)和image1;这个问题已经解决了解决方案是当我写IplImage*cropFace(IplImage*image,CvPoint eye\u left,CvPoint eye\u right,double offset\u pct[2],CvSize dest\u sz)时,我通过写IplImage*classnoon::cropFace(IplImage*image,CvPoint eye\u left,CvPoint eye\u right,double offset\u pct[2],CvSize dest\u sz)进行校正同样对于另一个函数Distance,我应该用ClassNon::处理它,但现在我有了一个新问题,第一个异常是0x100e3cf2 dans shervinemami.exe:0xC0000094:整数除以零。cropImage需要一个输入参数,其类型为IplImage*。。。我有一个参数是image1,它的参数是IplImage,这就是为什么我把&image1。在所有情况下,我都通过写:IplImage image1=mtx2;//mtx2,其类型cv:Mat IplImage*im22=(IplImage*)和image1;这个问题已经解决了解决方案是当我写IplImage*cropFace(IplImage*image,CvPoint eye\u left,CvPoint eye\u right,double offset\u pct[2],CvSize dest\u sz)时,我通过写IplImage*classnoon::cropFace(IplImage*image,CvPoint eye\u left,CvPoint eye\u right,double offset\u pct[2],CvSize dest\u sz)进行校正同样对于另一个函数Distance,我应该用ClassNon::来处理它,但现在我有了一个新问题,第一个异常是0x100e3cf2 dans shervinemami.exe:0xC0000094:整数除以零。