Как использовать FeatureDetector в OpenCV C ++? - PullRequest
2 голосов
/ 02 июля 2011

Я использую VS 2008 с OpenCV 2.1, установленным в соответствии с руководством по установке. FeatureDetector / SurfFeatureDetector перечислены в документации как классы, но они считаются «синтаксической ошибкой: идентификатор« SurfFeatureDetector »

Это почти весь мой код.

#include "cv.h"
#include "highgui.h"

Ptr<FeatureDetector> *detect = new SurfFeatureDetector();

Я попробовал несколько случайных комбинаций, чтобы заставить это работать. Как я могу инициализировать функцию детектора?

Ответы [ 4 ]

3 голосов
/ 02 июля 2011

Вы объявляете указатель на cv :: Ptr - вы действительно должны просто иметь cv :: Ptr.Измените код на

#include "cv.h"
#include "highgui.h"

using namespace cv;
Ptr<FeatureDetector> detect = new SurfFeatureDetector();

, и он должен работать.

1 голос
/ 03 июля 2011

Я думаю, что у вас есть проблема с установкой, попробуйте установить ее здесь: sourceforge.net / projects / opencvlibrary / files / opencv-win / 2.2

или другой вариант, что ваш прекомпилятор уже__OPENCV_OLD_CV_H__ определено.Попробуйте отменить его до #include "cv.h"

Когда вы наберете #include "cv.h", оно автоматически должно включать featurs2d.в действительности, cv.h включает в себя следующее:

#include "opencv2/core/core_c.h"
#include "opencv2/core/core.hpp"
#include "opencv2/imgproc/imgproc_c.h"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/video/tracking.hpp"
#include "opencv2/features2d/features2d.hpp"
#include "opencv2/flann/flann.hpp"
#include "opencv2/calib3d/calib3d.hpp"
#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/legacy/compat.hpp"
0 голосов
/ 06 декабря 2012

Вам необходимо:

#include <opencv2/nonfree/nonfree.hpp>

(отсюда: http://answers.opencv.org/question/411/feature-detector-crash/)

0 голосов
/ 03 июля 2011

Вам необходимо включить C ++ в OpenCV 2.x стиле. Смотри ниже

#include "opencv2/features2d/features2d.hpp"
#include "cv.h"
#include "highgui.h"

using namespace cv;
Ptr<FeatureDetector> detect = new SurfFeatureDetector();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...