Projekt

Ogólne

Profil

Błąd #1127

Instalacja CvBasic

Dodane przez Karol Katerzawa około 12 lat temu. Zaktualizowane ponad 5 lat temu.

Status:
Zamknięty
Priorytet:
Normalny
Przypisany do:
Tomasz Kornuta
Data rozpoczęcia:
2013-03-12
Data oddania:
% Wykonania:

100%


Opis

[17:25][qiubix@dom][~/DCL/CvBasic/build]$ cmake .. -DDisCODe_DIR=/home/qiubix/DisCODe/build/inst/share/DisCODe/
-- /home/qiubix/DisCODe/build/inst/share/DisCODe//lib;/home/qiubix/DCL/CvBasic/dist/lib
-- DISCODE_DCL_DIR=[/home/qiubix/DCL]
-- Looking for CvCoreTypes DCL...
-- CvCoreTypes found.
-- CvHoughCircles
-- CvAdaptiveThreshold
-- CvFindChessboardCorners
-- CvThreshold
-- CvUndistort
-- Movie
-- CvMorphology
-- CvVideoWriter
-- CvColorConv
-- CvGaussianBlur
-- CvSolvePnP
-- Sequence
-- CvSplit
-- CvFilter2D
-- CameraOpenCV
-- CvWindow
-- Calib
-- RGBLUT
-- HSVLUT
-- ImageWriter
-- Sum
-- CvCanny
-- CvHarris
-- CvSIFT
-- CvFlann
-- CvSURF
-- CvContour
-- CvMoments
-- Skeletonization
-- CvBayesClassifier
-- Configuring done
-- Generating done
-- Build files have been written to: /home/qiubix/DCL/CvBasic/build
[17:25][qiubix@dom][~/DCL/CvBasic/build]$ make
Scanning dependencies of target TypesCircles
[ 3%] Building CXX object src/Types/Circles/CMakeFiles/TypesCircles.dir/Circles.cpp.o
Linking CXX shared library libTypesCircles.so
[ 3%] Built target TypesCircles
Scanning dependencies of target CvHoughCircles
[ 6%] Building CXX object src/Components/CvHoughCircles/CMakeFiles/CvHoughCircles.dir/CvHoughCircles.cpp.o
Linking CXX shared library libCvHoughCircles.so
[ 6%] Built target CvHoughCircles
Scanning dependencies of target CvAdaptiveThreshold
[ 9%] Building CXX object src/Components/CvAdaptiveThreshold/CMakeFiles/CvAdaptiveThreshold.dir/CvAdaptiveThreshold.cpp.o
Linking CXX shared library libCvAdaptiveThreshold.so
[ 9%] Built target CvAdaptiveThreshold
Scanning dependencies of target CvFindChessboardCorners
[ 12%] Building CXX object src/Components/CvFindChessboardCorners/CMakeFiles/CvFindChessboardCorners.dir/CvFindChessboardCorners_Processor.cpp.o
Linking CXX shared library libCvFindChessboardCorners.so
[ 12%] Built target CvFindChessboardCorners
Scanning dependencies of target procCvThreshold
[ 16%] Building CXX object src/Components/CvThreshold/CMakeFiles/procCvThreshold.dir/CvThreshold_Processor.cpp.o
Linking CXX shared library libprocCvThreshold.so
[ 16%] Built target procCvThreshold
Scanning dependencies of target CvUndistort
[ 19%] Building CXX object src/Components/CvUndistort/CMakeFiles/CvUndistort.dir/CvUndistort_Processor.cpp.o
Linking CXX shared library libCvUndistort.so
[ 19%] Built target CvUndistort
Scanning dependencies of target srcMovie
[ 22%] Building CXX object src/Components/Movie/CMakeFiles/srcMovie.dir/Movie_Source.cpp.o
Linking CXX shared library libsrcMovie.so
[ 22%] Built target srcMovie
Scanning dependencies of target procCvMorphology
[ 25%] Building CXX object src/Components/CvMorphology/CMakeFiles/procCvMorphology.dir/CvMorphology_Processor.cpp.o
Linking CXX shared library libprocCvMorphology.so
[ 25%] Built target procCvMorphology
Scanning dependencies of target CvVideoWriter
[ 29%] Building CXX object src/Components/CvVideoWriter/CMakeFiles/CvVideoWriter.dir/CvVideoWriter_Sink.cpp.o
Linking CXX shared library libCvVideoWriter.so
[ 29%] Built target CvVideoWriter
Scanning dependencies of target procCvColorConv
[ 32%] Building CXX object src/Components/CvColorConv/CMakeFiles/procCvColorConv.dir/CvColorConv_Processor.cpp.o
Linking CXX shared library libprocCvColorConv.so
[ 32%] Built target procCvColorConv
Scanning dependencies of target procCvGaussianBlur
[ 35%] Building CXX object src/Components/CvGaussianBlur/CMakeFiles/procCvGaussianBlur.dir/CvGaussianBlur_Processor.cpp.o
Linking CXX shared library libprocCvGaussianBlur.so
[ 35%] Built target procCvGaussianBlur
Scanning dependencies of target CvSolvePnP
[ 38%] Building CXX object src/Components/CvSolvePnP/CMakeFiles/CvSolvePnP.dir/CvSolvePnP_Processor.cpp.o
Linking CXX shared library libCvSolvePnP.so
[ 38%] Built target CvSolvePnP
Scanning dependencies of target Sequence
[ 41%] Building CXX object src/Components/Sequence/CMakeFiles/Sequence.dir/Sequence.cpp.o
Linking CXX shared library libSequence.so
[ 41%] Built target Sequence
Scanning dependencies of target procCvSplit
[ 45%] Building CXX object src/Components/CvSplit/CMakeFiles/procCvSplit.dir/CvSplit_Processor.cpp.o
Linking CXX shared library libprocCvSplit.so
[ 45%] Built target procCvSplit
Scanning dependencies of target CvFilter2D
[ 48%] Building CXX object src/Components/CvFilter2D/CMakeFiles/CvFilter2D.dir/CvFilter2D_Processor.cpp.o
Linking CXX shared library libCvFilter2D.so
[ 48%] Built target CvFilter2D
Scanning dependencies of target srcCameraOpenCV
[ 51%] Building CXX object src/Components/CameraOpenCV/CMakeFiles/srcCameraOpenCV.dir/CameraOpenCV_Source.cpp.o
Linking CXX shared library libsrcCameraOpenCV.so
[ 51%] Built target srcCameraOpenCV
Scanning dependencies of target procCvWindow
[ 54%] Building CXX object src/Components/CvWindow/CMakeFiles/procCvWindow.dir/CvWindow_Sink.cpp.o
Linking CXX shared library libprocCvWindow.so
[ 54%] Built target procCvWindow
Scanning dependencies of target Calib
[ 58%] Building CXX object src/Components/Calib/CMakeFiles/Calib.dir/Calib.cpp.o
Linking CXX shared library libCalib.so
[ 58%] Built target Calib
Scanning dependencies of target RGBLUT
[ 61%] Building CXX object src/Components/RGBLUT/CMakeFiles/RGBLUT.dir/RGBLUT.cpp.o
Linking CXX shared library libRGBLUT.so
[ 61%] Built target RGBLUT
Scanning dependencies of target HSVLUT
[ 64%] Building CXX object src/Components/HSVLUT/CMakeFiles/HSVLUT.dir/HSVLUT.cpp.o
Linking CXX shared library libHSVLUT.so
[ 64%] Built target HSVLUT
Scanning dependencies of target ImageWriter
[ 67%] Building CXX object src/Components/ImageWriter/CMakeFiles/ImageWriter.dir/ImageWriter.cpp.o
Linking CXX shared library libImageWriter.so
[ 67%] Built target ImageWriter
Scanning dependencies of target Sum
[ 70%] Building CXX object src/Components/Sum/CMakeFiles/Sum.dir/Sum.cpp.o
Linking CXX shared library libSum.so
[ 70%] Built target Sum
Scanning dependencies of target CvCanny
[ 74%] Building CXX object src/Components/CvCanny/CMakeFiles/CvCanny.dir/CvCanny.cpp.o
Linking CXX shared library libCvCanny.so
[ 74%] Built target CvCanny
Scanning dependencies of target CvHarris
[ 77%] Building CXX object src/Components/CvHarris/CMakeFiles/CvHarris.dir/CvHarris.cpp.o
Linking CXX shared library libCvHarris.so
[ 77%] Built target CvHarris
Scanning dependencies of target CvSIFT
[ 80%] Building CXX object src/Components/CvSIFT/CMakeFiles/CvSIFT.dir/CvSIFT.cpp.o
/home/qiubix/DCL/CvBasic/src/Components/CvSIFT/CvSIFT.cpp: In member function ‘void Processors::CvSIFT::CvSIFT::onNewImage()’:
/home/qiubix/DCL/CvBasic/src/Components/CvSIFT/CvSIFT.cpp:63:6: error: ‘SiftFeatureDetector’ is not a member of ‘cv’
/home/qiubix/DCL/CvBasic/src/Components/CvSIFT/CvSIFT.cpp:63:30: error: expected ‘;’ before ‘detector’
/home/qiubix/DCL/CvBasic/src/Components/CvSIFT/CvSIFT.cpp:65:6: error: ‘detector’ was not declared in this scope
/home/qiubix/DCL/CvBasic/src/Components/CvSIFT/CvSIFT.cpp:68:3: error: ‘SiftDescriptorExtractor’ is not a member of ‘cv’
/home/qiubix/DCL/CvBasic/src/Components/CvSIFT/CvSIFT.cpp:68:31: error: expected ‘;’ before ‘extractor’
/home/qiubix/DCL/CvBasic/src/Components/CvSIFT/CvSIFT.cpp:70:3: error: ‘extractor’ was not declared in this scope
make[2]: *** [src/Components/CvSIFT/CMakeFiles/CvSIFT.dir/CvSIFT.cpp.o] Error 1
make[1]: *** [src/Components/CvSIFT/CMakeFiles/CvSIFT.dir/all] Error 2
make: *** [all] Error 2


Powiązane zagadnienia

blokuje Karol Katerżawa bachelor thesis - Zadanie #1116: Ukończenie tutoriali DisCODe Zamknięty

Historia

#1 Uaktualnione przez Tomasz Kornuta około 12 lat temu

a jaką masz wersję OpenCV?

#2 Uaktualnione przez Karol Katerzawa około 12 lat temu

2.4.4, z tego co wiem to jest najnowsza stabilna.
Korzystałem przy instalacji z tego tutoriala:
[[http://opencv.willowgarage.com/wiki/InstallGuide]]

(link do niego jest podany w [[https://robotyka.ia.pw.edu.pl/twiki/bin/view/Software/DisCODe/RequiredSoftwareAndLibraries]] , więc z tego skorzystałem )

#3 Uaktualnione przez Karol Katerzawa około 12 lat temu

Wydaje mi się, że problem jest w tym, że nie wykrywa wszystkich opcji CvSIFTa. W powyższym błędzie widać, że chodzi o cv::SiftFeatureDetector i cv::SiftDescriptorExtractor. Obie te klasy są w pliku features2d.hpp, który znajduje się domyślnie w katalogu .../include/opencv2/nonfree/features2d.hpp, a nie tak jak pozostale jakies klasy/funkcje dotyczące cech 2d, ktore są u mnie w ..../include/opencv2/features2d/features2d.hpp

Poczytałem trochę i możliwe, że problem zostanie rozwiązany, jeśli podczas tworzenia makefile'a do CvBasic przy pomocy cmake'a, podlinkuję jakoś tę bibliotekę. Wydaje się, że opencv mam poprawie zainstalowane, bo skoro zgłasza błąd dopiero na 80 procentach, to znaczy, że reszta jakoś przeszła. Zresztą, nie zmieniałem domyślnych katalogów instalacji i wszystko wygląda na zainstalowane w sensownych miejscach. SiftFeatureDetector i SiftDescriptorExtractor zawierają jakieś non-free algorytmy, z tego co zdołałem się zorientować, dlatego możliwe, że trzeba je dołącząć na siłę, żeby uczynić za dość licencjom wolnego oprogramowania.

Nie znam za bardzo tego narzędzia cmake, bo wcześniej z niego nie korzystałem, więc gdybyś był w stanie podrzucić mi komendę do generacji tego makefile'a dla CvBasic'a, taką, żeby linkowała ten fragment biblioteki, to będę bardzo wdzięczny. Albo inną, która może rozwiązać problem, jeśli to nie o to chodzi. Do tej pory używałem: cmake .. -DDisCODe_DIR=/home/qiubix/DisCODe/build/inst/share/DisCODe/
W outpucie tego cmake'a widać wyraźnie utworzenie CvSIFTa, ale prawdopodobnie brakuje wcześniej tych features2d czy czegos takiego.

Jeśli nie wiesz, jak to zrobić albo nie masz czasu, to prześlij mi proszę adres mailowy do Maćka Stefańczyka, bo nie mogę go znaleźć.

#4 Uaktualnione przez Tomasz Kornuta około 12 lat temu

Hmmmm, być może faktycznie po prostu źle skonfigurowałeś cmake.

Idea jest taka:
- tworzysz katalog build (w sumie nazwa dowolna, ale taki jest standard
- w build wywołujesz polecenie "ccmake .." - to ci uruchomi konfigurator cmake'a
- tam wskazujesz ścieżki do wymaganych bibliotek, jak np. opencv czy boost
- jak zakończysz, konfigurujesz i generujesz cmake'a

Ogólnie może warto zapoznać się z tutorialem:
http://www.cmake.org/cmake/help/cmake_tutorial.html

#5 Uaktualnione przez Karol Katerzawa około 12 lat temu

To był chyba błąd (niedopatrzenie) w kodzie komponentu. Zforkowałem repozytorium od Słonia, wprowadziłem poprawki, i CvBasic się zainstalował. Zrobiłem Commita i Pull Requesta, to może następna osoba nie będzie miała tego problemu, jeśli Maciek zatwierdzi moje zmiany.

Wydaje mi się, że tak jak pisałem wcześniej to była kwestia tego, że w którejś wersji OpenCv przeniesiono część algorytmów do sekcji nonfree, i przez to poprzednie includy nie widziały tych typedefów, których tam brakowało.

#6 Uaktualnione przez Karol Katerzawa około 12 lat temu

  • Zmieniono Status z Nowy na W Toku
  • Zmieniono % Wykonania z 0 na 90

#7 Uaktualnione przez Karol Katerzawa prawie 12 lat temu

  • Zmieniono Status z W Toku na Rozwiązany
  • Zmieniono % Wykonania z 90 na 100

#8 Uaktualnione przez Tomek Winiarski ponad 5 lat temu

  • Zmieniono Status z Rozwiązany na Zamknięty

Eksportuj do Atom PDF