2013-09-30 7 views
0

J'essaye de faire la détection de blob dans OpenCV sur le système Ubuntu 12.04. J'ai besoin d'installer la bibliothèque cvblob pour cela. J'ai donc téléchargé le fichier zip, l'ai extrait et j'ai essayé de lancer cmake. Mais chaque fois que je lance ceComment installer cvblob sur ubuntu 12.04

cmake . -DOpenCV_DIR=<directory path> 

il montre l'erreur suivante

bash: syntax error near unexpected token `newline' 

et aussi l'erreur suivante:

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

Que dois-je faire?

+0

cvbloblibs est * très * vieux et utilise le c-api obsolète. peut-être que vous feriez mieux de ne pas l'utiliser du tout, et plutôt aller avec le C++ api et [findContours] (http://docs.opencv.org/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html#findcontours) – berak

Répondre

0

deux de vos problèmes sont essentiellement des problèmes CMake, pas cvblob questions.

Voici un exemple complet de compilation de cvblob sur Ubuntu 12.04 LTS. Il suppose que OpenCV a été installé avec succès dans le système.

[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]:~$ 

sources de première cvblob get de http://cvblob.googlecode.com/files/cvblob-0.10.4-src.tgz (l'emplacement dernière version au moment de l'écriture) et décompressez le paquet:

[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]:~$ 

Comme vous pouvez le voir il y a cvblob/CMakeLists.txt qui est requis par CMake. Vous obtenez la deuxième erreur parce que vous dites à CMake regarder du mauvais répertoire:

[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]:~$ 

Vous obtenez la première erreur parce que vous ne le saviez pas que <directory path> est un texte d'espace réservé que vous êtes censé le remplacer par un vrai chemin du répertoire:

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

au lieu de cela, vous devriez avoir écrit:

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

/usr/local/ est un chemin réel et correct dans votre systè m.

Alors, comment construire la bibliothèque correctement?

[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$ 
Questions connexes