Я немного поиграюсь с c ++ / opencv. Я искал некоторые образцы и не
удается скомпилировать / запустить peopledetect.cpp, который использует HOGDescriptor
.
Я установил базовое консольное приложение Qt, чтобы протестировать и сузить проблему, и получил этот базовый код:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/objdetect/objdetect.hpp"
#include <stdio.h>
#include <string.h>
#include <ctype.h>
using namespace cv;
using namespace std;
int main(){
Mat img = imread("../images/people1.jpg");
HOGDescriptor hog;
namedWindow("people detect test");
imshow("TaDa!",img);
waitKey(5000);
return 1;
}
Который не компилируется из-за этой строки: HOGDescriptor hog;
.
Вот вывод компиляции, который дает Qt:
Running build steps for project HoGTest...
Configuration unchanged, skipping qmake step.
Starting: "/usr/bin/make" -w
make: Entering directory `/Users/george/Documents/Qt/HoGTest'
g++ -headerpad_max_install_names -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5 -o HoGTest main.o -F/Users/george/QtSDK/Desktop/Qt/474/gcc/lib -L/Users/george/QtSDK/Desktop/Qt/474/gcc/lib /opt/local/lib/libopencv_core.2.3.1.dylib /opt/local/lib/libopencv_highgui.2.3.1.dylib -framework QtCore
Undefined symbols:
"vtable for cv::HOGDescriptor", referenced from:
cv::HOGDescriptor::HOGDescriptor()in main.o
cv::HOGDescriptor::~HOGDescriptor()in main.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [HoGTest] Error 1
make: Leaving directory `/Users/george/Documents/Qt/HoGTest'
The process "/usr/bin/make" exited with code 2.
Error while building project HoGTest (target: Desktop)
When executing build step 'Make'
К сожалению, я n00b, когда дело доходит до c ++ / opencv, поэтому не уверен, что
ошибка означает точно и как ее исправить. Советы / подсказки?