使用 Opencv 时 C++ 调试断言失败

C++ Debug Assertion Failed While Using Opencv

我正在尝试比较两张图片并检查它们是否属于同一个人。此代码给出调试断言失败 Like here。我检查过,它可以访问照片。那么问题是什么。人们说您正在尝试访问实际上不存在的东西。但是,我在我的代码中找不到任何相关信息。 此致;

        #include <iostream>
        #include <string>
        #include "opencv2\core\core.hpp"
        #include "opencv2\core.hpp"
        #include "opencv2\face.hpp"
        #include "opencv2\highgui\highgui.hpp"
       #include "opencv2\objdetect\objdetect.hpp"
        #include "opencv2\opencv.hpp"
        #include<direct.h>
        #include "vector"


      using namespace std;
      using namespace cv;
      using namespace cv::face;

     int main() {
       vector<Mat> img;
       img[0]= imread("C://Users//Gökhan//Desktop//faces//faces442.jpg");
       Mat img2 = imread("C://Users//Gökhan//Desktop//faces//faces448.jpg");
       vector<int> label;
       label[0] = 1;
       Ptr<LBPHFaceRecognizer> model = LBPHFaceRecognizer::create();
       model->train(img[0], label[0]);
       int predictedLabel = model->predict(img2);
       if (predictedLabel == 1) {
       cout << "found";
  }

  }

您正在尝试访问没有元素的向量元素。 您必须在访问之前分配元素。 例如,您可以使用构造函数指定要分配的元素数来分配元素。为此,请更改行

vector<Mat> img;
vector<int> label;

vector<Mat> img(1);
vector<int> label(1);