0

尽管之前已经有很多人问过这个问题,但这不是基本的安装问题(虽然答案可能很简单)。

好的,我正在并行安装两个 OpenCV(2.3.1 和最新的 2.4),但我主要使用 2.3.1。

所以,我之前(在同一台机器上)让 cvBlob 工作正常,但我开始重新安装。任何人,我已经成功构建了 OpenCV,并且我已经从 CvBlob 项目站点进行了更改,以将OpenCV 库包含在 CMakeLists.txt 中

为了确保 OpenCV 正常,我运行并重新运行 make 和 make install 以确保它位于 usr/local/include 目录中。使用 OpenCV 的测试应用程序工作正常,并且使用file opencv_library.dylib表明 opencv 库是 64 位的。

关于问题的症结,我cmake .从 cvblob 目录的根目录运行,一切都恢复正常。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 库相关联,我看不出哪里出了问题。有人有什么想法吗?

4

1 回答 1

1

所有这些关于 cvBlobLib 的问题和问题都来自过去,当时 OpenCV 没有 blob 跟踪器,有人写了它,然后放到了网上。由于某种原因,它变得非常流行。

但那是很多年前的事了。

现在您可以轻松使用与 opencv 捆绑在一起的SampleBlobDetector 。它更成熟,更强大,并且具有更多功能。而且您不必担心包含/链接问题。

于 2012-07-24T14:11:54.980 回答