std :: algorithm读取访问冲突

时间:2019-04-28 08:58:48

标签: c++ opencv face-detection

我正在使用opencv / c ++中的延迟相机设置人脸检测。我该如何做到没有错误?

为了进行检测,我使用了CascadeClassifier.Detectmultiscale。

void detectAndDraw(Mat& img, CascadeClassifier& cascade,

    double scale)
{
    vector<Rect> faces;
    Mat gray;

    cvtColor(img, gray, COLOR_BGR2GRAY); // Convert to Gray Scale 


    // Resize the Grayscale Image  

    equalizeHist(gray, gray);

    // Detect faces of different sizes using cascade classifier  
    cascade.detectMultiScale(gray, faces);

    // Draw circles around the faces 
for(int i = 0; i<=faces.size();i++){
//and cout of x,y,width,height
}

我已经详细介绍了细节,但是算法中的Access Reading Memory出现错误。

照片:

This is error

1 个答案:

答案 0 :(得分:1)

看起来您在此循环中遇到了一个错误:

for(int i = 0; i <= faces.size(); i++) {
   ...
}

这可能应该是<而不是<=,因为否则在最后一次迭代中,您的i的值将超出范围。