我正在使用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出现错误。
照片:
答案 0 :(得分:1)
看起来您在此循环中遇到了一个错误:
for(int i = 0; i <= faces.size(); i++) {
...
}
这可能应该是<
而不是<=
,因为否则在最后一次迭代中,您的i
的值将超出范围。