Я разрабатываю проект, используя opencv3.0 с дополнительным модулем, найденным в opencv_contrib github. Я использую Xcode 7.0, Yosemite 10.10.
Я сделал настройку в Xcode
Путь поиска заголовка:
/Users/kimloonghew/Documents/opencv/opencv-3.0.0/build/include /usr/local/Cellar/libiomp/20150401/include/libiomp/omp.h / usr / local / include
Путь поиска библиотеки:
/Users/kimloonghew/Documents/opencv/opencv-3.0.0/build/lib / usr / local / lib
Другой Linker Флаг: -lopencv_calib3d -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videoio -lopencv_videostab -lopencv_nonfree -lopencv_ml -lopencv_xfeatures2d
Вот код ниже:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <dirent.h>
#include <string>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <opencv2/core.hpp>
#include <opencv2/opencv.hpp>
#include <opencv2/features2d/features2d.hpp>
#include <opencv2/nonfree/nonfree.hpp>
#include <opencv2/xfeatures2d.hpp>
#include <opencv2/nonfree/features2d.hpp>
#include <opencv2/ml/ml.hpp>
using namespace std;
using namespace cv;
int main(int argc, const char * argv[]) {
int minHessin = 400;
string dir = "/Users/DYKLhew/Documents/Food_proj/MIT/foodcamimages/TRAIN", filepath;
DIR *dp;
struct dirent *dirp;
struct stat filestat;
dp = opendir(dir.c_str());
SurfFeatureDetector detector(minHessin);
//Ptr<xfeatures2d::SURF> detector = xfeatures2d::SURF::create(minHessin);
vector<KeyPoint> keypoints, keypoints_scene;
Mat descriptors_object, descriptor_scene;
Mat img;
cout << "------- build vocabulary ---------\n";
cout << "extract descriptors.."<<endl;
int count = 0;
while (count++ < 15 && (dirp = readdir(dp))) {
filepath = dir + "/" + dirp->d_name;
if(stat( filepath.c_str(), &filestat )) continue;
if(S_ISDIR(filestat.st_mode)) continue;
img = imread(filepath);
detector.detect(img, keypoints);cout << ".";
}
cout << endl;
closedir(dp);
cout << "Total descriptors : " << count << endl;
//BOWKMeansTrainer bowtrainer(150);return 0;
}
Когда я запускаю файл, происходит сбой BUILD с ошибками, обнаруженными в файлах featuares2d.hpp. Ошибки как ниже
1) Неизвестное имя типа «AlgorigthmInfo»; Вы имели в виду «Algorigthm»?
2) Нет шаблона с именем «вектор»; Вы имели в виду ‘std :: vector?’
Что-то я сделал не так при установке или установке opencv? или какой-либо путь ссылки я должен определить?
Благодарим Вас за совет. Спасибо
Решенные проблемы:
Компилятор XCode умный, и он может предсказать решения, которые соответствуют текущей конфигурации машины. Если вы просто последуете совету компилятора Xcode, проблемы будут решены.
Система не распознает AlgorigthmInfo
, вы можете изменить на Algorigthm
так же как vector
в std::vector
,
Теперь полностью работает хорошо openCV на моей машине.
Надеюсь, это поможет некоторым другим, если они столкнутся с такими же проблемами.
Других решений пока нет …