Я хочу сохранить свой классификатор, а затем, когда я пытаюсь его прочитать, он генерирует ошибку сегментации. Я попытался понять это, и я думаю, что это ошибка с opencv.
Вот мой код:
bool result = model.train(samples,Mat(),ps,&lables);
printf("Train Result %d\n",result);
CvFileStorage *fs;
fs = cvOpenFileStorage("skin_new.xml",NULL, CV_STORAGE_WRITE);
model.write_params(fs);
cvReleaseFileStorage( &fs );
CvFileStorage *fs1;
//Reading back XML file
fs1 = cvOpenFileStorage("skin_new.xml",NULL , CV_STORAGE_READ);
classifier.read_params(fs1,NULL);
cvReleaseFileStorage( &fs1 );
printf("XML reading done\n");
//the two dominating colors
Mat means = model.getMeans();//This step leads to segmentation error
Я использую OpenCV 2.3.1.
Я думаю, что вы работаете в ОС Linux. Поэтому я думаю, что у вас нет доступа к файлу skin_new.xml.
Вы можете использовать
chmod 777 skin_new.xml
Но это временно. Я столкнулся с такой же проблемой.