2013-09-30 211 views
0

我試圖在OpenCV上做012b系統中的斑點檢測。我需要爲此安裝cvblob庫。所以,我下載了zip文件,解壓縮並試圖運行cmake。但每次我運行此如何在Ubuntu上安裝cvblob 12.04

cmake . -DOpenCV_DIR=<directory path> 

它顯示了以下錯誤

bash: syntax error near unexpected token `newline' 

,並出現以下錯誤:

CMake Error: The source directory "/home/arvindnarayanan/Documents/cvblob" does not appear to contain CMakeLists.txt. 

我該怎麼辦?

+0

cvbloblibs *非常*舊,並使用過時的c-api。也許你最好不要使用它,而是使用C++ api和[findContours](http://docs.opencv.org/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html#findcontours) – berak

回答

0

你的問題都基本上是CMake的問題,而不是cvblob問題。

下面是如何在Ubuntu 12.04 LTS上編譯cvblob的完整示例。它假定OpenCV已成功安裝到系統中。從http://cvblob.googlecode.com/files/cvblob-0.10.4-src.tgz(最新版本在撰稿時的位置),並解壓包

[email protected]:~$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu 
DISTRIB_RELEASE=12.04 
DISTRIB_CODENAME=precise 
DISTRIB_DESCRIPTION="Ubuntu 12.04.3 LTS" 
[email protected]:~$ 

首先得到cvblob來源:

[email protected]:~$ tar xzvf cvblob-0.10.4-src.tgz 
cvblob/ 
cvblob/CMakeLists.txt 
cvblob/CMakeScripts/ 
cvblob/CMakeScripts/Toolchain-mingw32.cmake 
cvblob/COPYING 
cvblob/COPYING.LESSER 
cvblob/ChangeLog 
cvblob/Doxyfile 
cvblob/README 
cvblob/contrib/ 
cvblob/contrib/cvBlobDLL/ 
cvblob/contrib/cvBlobDLL/README 
cvblob/contrib/cvBlobDLL/TestDLL/ 
cvblob/contrib/cvBlobDLL/TestDLL/Debug/ 
cvblob/contrib/cvBlobDLL/TestDLL/ReadMe.txt 
cvblob/contrib/cvBlobDLL/TestDLL/Release/ 
cvblob/contrib/cvBlobDLL/TestDLL/TestDLL.c 
cvblob/contrib/cvBlobDLL/TestDLL/TestDLL.vcproj 
cvblob/contrib/cvBlobDLL/TestDLL/imgout.png 
cvblob/contrib/cvBlobDLL/TestDLL/stdafx.cpp 
cvblob/contrib/cvBlobDLL/TestDLL/stdafx.h 
cvblob/contrib/cvBlobDLL/TestDLL/targetver.h 
cvblob/contrib/cvBlobDLL/TestDLL/test.png 
cvblob/contrib/cvBlobDLL/cvblobDLL/ 
cvblob/contrib/cvBlobDLL/cvblobDLL/Debug/ 
cvblob/contrib/cvBlobDLL/cvblobDLL/Release/ 
cvblob/contrib/cvBlobDLL/cvblobDLL/cvblobDLL.cpp 
cvblob/contrib/cvBlobDLL/cvblobDLL/cvblobDLL.h 
cvblob/contrib/cvBlobDLL/cvblobDLL/cvblobDLL.sln 
cvblob/contrib/cvBlobDLL/cvblobDLL/cvblobDLL.suo 
cvblob/contrib/cvBlobDLL/cvblobDLL/cvblobDLL.vcproj 
cvblob/contrib/cvBlobDLL/cvblobDLL/dllmain.cpp 
cvblob/contrib/cvBlobDLL/cvblobDLL/stdafx.cpp 
cvblob/contrib/cvBlobDLL/cvblobDLL/stdafx.h 
cvblob/contrib/cvBlobDLL/cvblobDLL/targetver.h 
cvblob/cvBlob/ 
cvblob/cvBlob/CMakeLists.txt 
cvblob/cvBlob/cvaux.cpp 
cvblob/cvBlob/cvblob.cpp 
cvblob/cvBlob/cvblob.h 
cvblob/cvBlob/cvcolor.cpp 
cvblob/cvBlob/cvcontour.cpp 
cvblob/cvBlob/cvlabel.cpp 
cvblob/cvBlob/cvtrack.cpp 
cvblob/cvBlobConfig.cmake.in 
cvblob/cvblob.pc.cmake.in 
cvblob/doc/ 
cvblob/samples/ 
cvblob/samples/Makefile 
cvblob/samples/red_object_tracking.cpp 
cvblob/samples/red_object_tracking.txt 
cvblob/test/ 
cvblob/test/CMakeLists.txt 
cvblob/test/EnterExitCrossingPaths2front_blobs.mpeg 
cvblob/test/EnterExitCrossingPaths2front_blobs.txt 
cvblob/test/test.cpp 
cvblob/test/test.png 
cvblob/test/test_random.cpp 
cvblob/test/test_tracking.cpp 
[email protected]:~$ 

正如你可以看到有由CMake的需要cvblob/CMakeLists.txt

[email protected]:~$ cmake . 
CMake Error: The source directory "/home/dev" does not appear to contain CMakeLists.txt. 
Specify --help for usage, or press the help button on the CMake GUI. 
[email protected]:~$ 

你得到的第一個錯誤,因爲你沒有意識到,<directory path>是你應該用替換佔位符文本:因爲你說向CMake從錯誤的目錄看你得到第二個錯誤真正的目錄路徑:

[email protected]:~$ cmake . -DOpenCV_DIR=<directory path> 
bash: syntax error near unexpected token `newline' 
[email protected]:~$ 

相反,你應該寫:

[email protected]:~$ cmake . -DOpenCV_DIR=/usr/local/ 

/usr/local/是你SYSTE真實和正確的路徑米

那麼如何正確構建庫?

[email protected]:~$ cd cvblob/ 
[email protected]:~/cvblob$ mkdir build 
[email protected]:~/cvblob$ cd build 
[email protected]:~/cvblob/build$ cmake .. 
-- The C compiler identification is GNU 
-- The CXX compiler identification is GNU 
-- Check for working C compiler: /usr/bin/gcc 
-- Check for working C compiler: /usr/bin/gcc -- works 
-- Detecting C compiler ABI info 
-- Detecting C compiler ABI info - done 
-- Check for working CXX compiler: /usr/bin/c++ 
-- Check for working CXX compiler: /usr/bin/c++ -- works 
-- Detecting CXX compiler ABI info 
-- Detecting CXX compiler ABI info - done 
running mkdir -p "/home/dev/cvblob/build/unix-install/" 2>&1 
-- Configuring done 
-- Generating done 
-- Build files have been written to: /home/dev/cvblob/build 
[email protected]:~/cvblob/build$ make 
Scanning dependencies of target cvblob 
[ 11%] Building CXX object lib/CMakeFiles/cvblob.dir/cvblob.o 
[ 22%] Building CXX object lib/CMakeFiles/cvblob.dir/cvlabel.o 
[ 33%] Building CXX object lib/CMakeFiles/cvblob.dir/cvaux.o 
[ 44%] Building CXX object lib/CMakeFiles/cvblob.dir/cvcontour.o 
[ 55%] Building CXX object lib/CMakeFiles/cvblob.dir/cvtrack.o 
[ 66%] Building CXX object lib/CMakeFiles/cvblob.dir/cvcolor.o 
Linking CXX shared library libcvblob.so 
[ 66%] Built target cvblob 
Scanning dependencies of target test 
[ 77%] Building CXX object test/CMakeFiles/test.dir/test.o 
Linking CXX executable ../bin/test 
[ 77%] Built target test 
Scanning dependencies of target test_random 
[ 88%] Building CXX object test/CMakeFiles/test_random.dir/test_random.o 
Linking CXX executable ../bin/test_random 
[ 88%] Built target test_random 
Scanning dependencies of target test_tracking 
[100%] Building CXX object test/CMakeFiles/test_tracking.dir/test_tracking.o 
Linking CXX executable ../bin/test_tracking 
[100%] Built target test_tracking 
[email protected]:~/cvblob/build$ sudo make install 
[sudo] password for dev: 
[ 66%] Built target cvblob 
[ 77%] Built target test 
[ 88%] Built target test_random 
[100%] Built target test_tracking 
Install the project... 
-- Install configuration: "Release" 
-- Installing: /usr/local/share/cvblob/cvBlobConfig.cmake 
-- Installing: /usr/local/lib/pkgconfig/cvblob.pc 
-- Installing: /usr/local/include/cvblob.h 
-- Installing: /usr/local/lib/libcvblob.so 
-- Removed runtime path from "/usr/local/lib/libcvblob.so" 
[email protected]:~/cvblob/build$