虽然之前有人问过,但这不是基本的安装问题(答案可能很简单)。
好的,我正在运行两个并行的OpenCV安装(2.3.1和最新的2.4),但我主要使用2.3.1。
所以,我之前(在同一台机器上)cvBlob工作正常,但我来做重新安装。 Anywho,我已经成功构建了OpenCV,并且我已经从CvBlob项目站点进行了更改以包含OpenCV library in the CMakeLists.txt
为了确保OpenCV没问题,我运行并重新运行make和make install以确保它位于usr / local / include目录中。使用OpenCV测试应用程序正常工作并使用file opencv_library.dylib
显示opencv库是64位。
关于问题的关键,我从cvblob目录的根目录运行cmake .
,所有回来都很好。 make
然后sudo make install
运行,我被告知一切顺利。同样,file
表明libcvblob是一个64位的库,虽然我没有使用它。
我转到使用opencv和cvblob的c ++程序,其中包含opencv.hpp和cvblob.h的绝对路径。
然后,这个:
Undefined symbols for architecture x86_64:
"_cvLabel", referenced from:
_main in cchIl24a.o
"_cvFilterByArea", referenced from:
_main in cchIl24a.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
不知道出了什么问题,除了显而易见的,但它应该链接到opencv库,我无法看到我可能出错的地方。有没有人有任何想法?
答案 0 :(得分:1)
关于cvBlobLib的所有问题都来自过去,当时OpenCV没有blob跟踪器,有人写了它,然后放到网上。由于某种原因,它变得非常受欢迎。
但那是很多年前的事了。
现在您可以简单地使用与opencv捆绑在一起的SampleBlobDetector,而不会有麻烦。它更成熟,更强大,并且具有更多功能。而且您不必担心包含/链接问题。