Этот код должен взять несколько изображений и загрузить их, пробуя 3 разных метода в коде, и ни один из них не работает. Ответ здесь Получение ошибки OpenCV "Шаг изображения неправильный" в методе Fisherfaces.train() не работает для меня, потому что у меня нет этих библиотек.
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv/cvaux.h>
using namespace cv;
int main(int argc, char** argv)
{
//The code segments commented (not mine) are taken from http://docs.opencv.org/modules/contrib/doc/facerec/facerec_api.html
// holds images and labels (not mine)
cv::vector<cv::Mat> images;
cv::vector<int> labels;
//this doesnt assign anything to img
Mat img = cv::imread("/Users/STUFF/Desktop/Projects/OpenCV_testing/person0/0.jpg", 0);
//this also does nothing
IplImage *img=cvLoadImage("Image_Name);
Mat mat(img);
// images for first person (not mine) except incresed pathing/
//repeat for multiple people in future
images.push_back(cv::imread("/snip", CV_LOAD_IMAGE_GRAYSCALE));
labels.push_back(0);
images.push_back(cv::imread("/snip", CV_LOAD_IMAGE_GRAYSCALE));
labels.push_back(0);
images.push_back(cv::imread("/snip", CV_LOAD_IMAGE_GRAYSCALE));
labels.push_back(0);
// Create a new Fisherfaces model and retain all available Fisherfaces,
// this is the most common usage of this specific FaceRecognizer:
//(not mine)
Ptr<FaceRecognizer> model = createFisherFaceRecognizer();
// This is the common interface to train all of the available cv::FaceRecognizer
// implementations:
//(not mine)
model->train(images, labels);
model->save("/snip.xml");
return 0;
}
imread ничего не делает, что делает остальную часть кода бесполезной. Я действительно новичок в openCV и действительно не понимаю документацию, поэтому, возможно, я внедряю некоторые вещи неправильно. Я был бы признателен за помощь в ознакомлении и прочтении документации opencv.
не совсем ответ (так как код в комментариях не работает..)
но всегда полезно проверять при загрузке ресурсов:
Mat img = imread(path,flags);
if ( img.empty() )
{
// either the path was wrong, or it could not decompress it
cerr << "could not load " << path << endl;
return -1;
}