Я не умею изучать возможности opencv, и я обращаюсь к ним под URL.
http://coding-robin.de/2013/07/22/train-your-own-opencv-haar-classifier.html
А выше автор статьи рекомендует ознакомиться с его проектом, как здесь.
https://github.com/mrnugget/opencv-haar-classifier-training
И я учусь шаг за шагом,
но в том же порядке после того, как я скопирую mergevec.cpp в каталог моих приложений opencv, вот так
cp src/mergevec.cpp ~/opencv-2.4.9/apps/haartraining
cd ~/opencv-2.4.9/apps/haartraining
И затем я хочу получить исполняемый файл mergevec, используя следующие методы
g++ `pkg-config --libs --cflags opencv` -I. -o mergevec mergevec.cpp\
cvboost.cpp cvcommon.cpp cvsamples.cpp cvhaarclassifier.cpp\
cvhaartraining.cpp\
-lopencv_core -lopencv_calib3d -lopencv_imgproc -lopencv_highgui -lopencv_objdetect
И я получаю ошибку
/tmp/cc9GpmMW.o: In function `JpgDatasetGenerator::JpgDatasetGenerator(char const*)':
cvhaartraining.cpp:(.text+0xafd5): undefined reference to `IOutput::createOutput(char const*, IOutput::OutputType)'
/tmp/cc9GpmMW.o: In function `PngDatasetGenerator::PngDatasetGenerator(char const*)':
cvhaartraining.cpp:(.text+0xb24d): undefined reference to `IOutput::createOutput(char const*, IOutput::OutputType)'
cvhaartraining.cpp:(.text+0xb24d): undefined reference to `IOutput::createOutput(char const*, IOutput::OutputType)'
Я пытаюсь решить проблему, просматривая статьи на форуме opecv, и почти ничего не нашел.
Так кто-нибудь может мне помочь? большое спасибо..
IOutput — это интерфейс, где их методы объявлены в ioutput.h и должны быть где-то реализованы. Я обнаружил, что они были реализованы в cvsamplesoutput.cpp, поэтому нам просто нужно попросить gcc скомпилировать этот файл. Для этого правильная команда должна быть:
g++ `pkg-config --libs --cflags opencv` -I. -o mergevec mergevec.cpp\
cvboost.cpp cvcommon.cpp cvsamples.cpp cvhaarclassifier.cpp\
cvhaartraining.cpp cvsamplesoutput.cpp\
-lopencv_core -lopencv_calib3d -lopencv_imgproc -lopencv_highgui -lopencv_objdetect