Jump to content
Compvision.ru
Smorodov

Установка и первый проект OpenCV в картинках.

Recommended Posts

Подключение OpenCV вручную будет работать c Windows Forms.

CMake-ом - у меня создается консольный проект.

Share this post


Link to post
Share on other sites

Спасибо, Smorodov, ждал Вашего ответа.

Вы работаете c Windows Forms? Просто мне дико нужна помощь в этом. Мне надо сделать миниэксплорер чтобы выбранные файлы оставались видимыми в окошке, а не исчезали вместе с ним как в opendialog

Share this post


Link to post
Share on other sites

С GUI в VS я только пару проектов создавал, так что опыта в этом почти нет, мне лень возиться с интерфейсом, к тому же

все самое интересное и быстро можно получить в консольном приложении.

Share this post


Link to post
Share on other sites

Мне нужен вот такой эксплорер

acdc9af7adf0.png

придется работать со многими файлами и необходим порядок

Вот так нахожу список папок по заданному пути

array<DirectoryInfo^>^ listdir(String^ dirPath)

	{

		System::IO::DirectoryInfo ^ dirs;

		dirs = gcnew System::IO::DirectoryInfo(dirPath);

		array<DirectoryInfo^>^ listdirs = dirs->GetDirectories();

		return listdirs;

	}
Аналогично можно найти список файлов в папке. Но для того чтобы написать одну функцию возвращающую структуру
 struct dirsfiles

	{

		array<DirectoryInfo^>^ list_dirs;

		int numdirs(0);

		array<DirectoryInfo^>^ list_files;

		int numfiles(0);

	};

Надо понимать где она должна быть внутри класса Form1 или нет. Но ни в том, ни в другом случае компилятор это сделать не дает по разным причинам, напр, при глобальном объявлении надо как то объявить и array<DirectoryInfo^>^, но как я не понимаю

Share this post


Link to post
Share on other sites

использую готовую версию OpenCV-2.4.3

создал проект в VS2008 win32 console app,выбралEmpty Project отключил precompiled headers.

в инклюды хэдеров добавил

C:\OpenCV-2.4.3\build\include

в инклюды либ добавил все -d либы из C:\OpenCV-2.4.3\build\x86\vc9\staticlib

поставил /MTd

и не собирается без

opencv_highgui243d.lib(window_w32.obj) : error LNK2019: unresolved external symbol __imp__CreateToolbarEx@52 referenced in function "int __cdecl icvCreateTrackbar(char const *,char const *,int *,int,void (__cdecl*)(int),void (__cdecl*)(int,void *),void *)" (?icvCreateTrackbar@@YAHPBD0PAHHP6AXH@ZP6AXHPAX@Z3@Z)

если добавляю comctl32.lib

всё компилиться, но получаю кучу ворнингов на *.pdb типа

warning LNK4099: PDB 'opencv_core243d.pdb' was not found with

Share this post


Link to post
Share on other sites

и еще раз про инклюды.

делаю

#include "opencv.hpp"

отсюда

C:\OpenCV-2.4.3\build\include

при использовании

using namespace cv::detail;

пишет, что нету такого.

я должен включить еще дополнительно?

#include "opencv2/stitching/detail/autocalib.hpp"

#include "opencv2/stitching/detail/blenders.hpp"

#include "opencv2/stitching/detail/camera.hpp"

#include "opencv2/stitching/detail/exposure_compensate.hpp"

#include "opencv2/stitching/detail/matchers.hpp"

#include "opencv2/stitching/detail/motion_estimators.hpp"

#include "opencv2/stitching/detail/seam_finders.hpp"

#include "opencv2/stitching/detail/util.hpp"

#include "opencv2/stitching/detail/warpers.hpp"

получается неудобно.

Share this post


Link to post
Share on other sites

В примере stitching_detailed.cpp так и делают, видимо еще не встроили нормально.

Share this post


Link to post
Share on other sites

Привет, не могу сделать чекаут репозитория. Т.к. требует логин и пароль, зашел на их сайт, зарегистрировался, а там в ответ получил "Expired License Key. Contact GForge Group for help."

Может помочь как-то получить файлы из репозитория?:)

Share this post


Link to post
Share on other sites

В CMake столкнулся с такой проблемой: http://prntscr.com/1wlz9y

Скачал OpenCV 2.2.

в cmake в меню "File" -> "Delete cache" и снова нажмите "configure".

Вот это не помогает.

Чтобы это могло быть?

P.S.: сейчас пробую свежую 2.4.6

Share this post


Link to post
Share on other sites

решил собрать OpenBr под Linux.

Ubuntu 13.10 стоит под VirtualBox (кстати сильно тормозит). 13.10 для того чтобы qt5 был из коробки.

http://openbiometrics.org/doxygen/latest/linux_gcc.html

часть относящаяся к opencv

Download OpenCV 2.4.5, note this

$ cd ~/Downloads

$ tar -xf opencv-2.4.5.tar.gz

$ cd opencv-2.4.5

$ mkdir build

$ cd build

$ cmake -DCMAKE_BUILD_TYPE=Release ..

$ make -j4

$ sudo make install

$ cd ../..

$ rm -rf opencv-2.4.5*

так вот куда и что должно скопироваться после выполнения команды или как opencv должно установиться на систему? т.е. как это проверить?

Share this post


Link to post
Share on other sites

/usr/bin

/usr/lib

/usr/unclude

В общем, поищи в папке /usr результаты установки. Там всё по полочкам само раскладывается, а не кидается в одну кучу, как в Винде.

Share this post


Link to post
Share on other sites

Ага, apt-get умеет.

В репозитории лежит не такая уж и старая веррсия, пользоваться можно.

Ещё есть такая штука, как checkinstall. Позволяет из исходников одной командой делать пакет и ставить его.

Share this post


Link to post
Share on other sites

вообщем попытка номер 2.

 

теперь стоит ubuntu 14.04

 

изначально я поставил opencv из репозитория и собрал (долго оно собиралось, но это наверно из-за поддержки cuda)

т.е. встала версия 3.0.0

 

но с ней не хочет работать stasm4.0.0. который входит в openbr

типа https://github.com/juan-cardelino/stasm/issues/1

 

 

[  0%] Built target openbr_automoc
[  1%] Automoc for target stasm
[  1%] Built target stasm_automoc
[  2%] Building CXX object ../3rdparty/stasm4.0.0/build/CMakeFiles/stasm.dir/stasm/classicdesc.cpp.o
In file included from /home/mrgloom/Downloads/openbr/3rdparty/stasm4.0.0/stasm/stasm.h:58:0,
                 from /home/mrgloom/Downloads/openbr/3rdparty/stasm4.0.0/stasm/classicdesc.cpp:8:
/home/mrgloom/Downloads/openbr/3rdparty/stasm4.0.0/stasm/misc.h:412:9: error: variable or field ‘OpenDetector’ declared void
     cv::CascadeClassifier& cascade,  // out
         ^
/home/mrgloom/Downloads/openbr/3rdparty/stasm4.0.0/stasm/misc.h:412:5: error: ‘CascadeClassifier’ is not a member of ‘cv’
     cv::CascadeClassifier& cascade,  // out
     ^
/home/mrgloom/Downloads/openbr/3rdparty/stasm4.0.0/stasm/misc.h:412:28: error: ‘cascade’ was not declared in this scope
     cv::CascadeClassifier& cascade,  // out
                            ^
/home/mrgloom/Downloads/openbr/3rdparty/stasm4.0.0/stasm/misc.h:413:5: error: expected primary-expression before ‘const’
     const char*            filename, // in: basename.ext of cascade
     ^
/home/mrgloom/Downloads/openbr/3rdparty/stasm4.0.0/stasm/misc.h:414:5: error: expected primary-expression before ‘const’
     const char*            datadir); // in
     ^
/home/mrgloom/Downloads/openbr/3rdparty/stasm4.0.0/stasm/misc.h:418:9: error: ‘cv::CascadeClassifier’ has not been declared
     cv::CascadeClassifier* cascade,          // in
         ^
make[2]: *** [../3rdparty/stasm4.0.0/build/CMakeFiles/stasm.dir/stasm/classicdesc.cpp.o] Error 1
make[1]: *** [../3rdparty/stasm4.0.0/build/CMakeFiles/stasm.dir/all] Error 2
make: *** [all] Error 2

 

 

потом я поставил через sudo apt-get install libopencv-dev и похоже поставилась 2.4.8.

 

 

опять же насчёт CUDA сначала я зашел на сайт и скачал *.deb пакет, но он как будто не установился(должен был быть 6.5)

потом я через apt-get поставил и установился 5.5, но почему то не установились samples.

 

 

вот теперь меня волнует как проверить целостность всех этих установок?

или как можно поставить изолированно например 2 версии одну стабильную и одну самую свежую и менять на ходу если потребуется.

 

 

UPDATE:

всё удалил и поставил через

 

sudo apt-get install libopencv-dev

 

но похоже там нету nonfree модуля

https://bugs.launchpad.net/ubuntu/+source/opencv/+bug/1101049

ох уж эти копирасты

 

UPDATE:

 

В итоге:

Не собирается под ubuntu 12 т.к. нужен новый QT,

просто через apt-get install libopencv-dev т.к. нету nonfree,

с помощью git потому что с новой версией opencv3.0 не работает stasm4.0.

 

На винде кстати тоже были какие то проблемы, вроде как даже при установке бинарника.

Но основное это то что под VS2008 не было собрано нового QT и еще пути надо как то прописывать, что не удобно.

 

 

 

Но в итоге взяв версию 2.4.9 у меня оно скомпилировалось, но тесты не проходят

 

Running tests...
Test project /home/mrgloom/Downloads/openbr/build
    Start 1: br_initialize
1/9 Test #1: br_initialize ......................   Passed    0.23 sec
    Start 2: br_objects
2/9 Test #2: br_objects .........................   Passed    0.06 sec
    Start 3: br_draw_face_detection
3/9 Test #3: br_draw_face_detection .............   Passed    0.15 sec
    Start 4: face_recognition_evaluation_test
4/9 Test #4: face_recognition_evaluation_test ...   Passed    0.79 sec
    Start 5: age_estimation_test
5/9 Test #5: age_estimation_test ................***Exception: Other  4.30 sec
    Start 6: gender_estimation_test
6/9 Test #6: gender_estimation_test .............***Exception: Other  3.51 sec
    Start 7: face_recognition_train_test
7/9 Test #7: face_recognition_train_test ........   Passed   96.27 sec
    Start 8: face_recognition_search_test
8/9 Test #8: face_recognition_search_test .......***Exception: SegFault  0.68 sec
    Start 9: face_recognition_test
9/9 Test #9: face_recognition_test ..............***Exception: Other  0.57 sec

56% tests passed, 4 tests failed out of 9

Total Test time (real) = 106.57 sec

The following tests FAILED:
      5 - age_estimation_test (OTHER_FAULT)
      6 - gender_estimation_test (OTHER_FAULT)
      8 - face_recognition_search_test (SEGFAULT)
      9 - face_recognition_test (OTHER_FAULT)
Errors while running CTest
make: *** [test] Error 8

 

 

Share this post


Link to post
Share on other sites

Я cuda 6.5 поставил под ubuntu 14.04 и вполне себе поставился.

 

Вначале поставил новые драйверы nvidia.

 

Делал как то так (пишу по памяти):

 

sudo sevice lightdm stop

sudo apt-get purge nvidia*      (это не уверен, были танцы с бубнами, короче надо удалить все прежние драйверы)

sudo apt-get install linux-headers-generic

sudo sh NVIDIA***.run

sudo sevice lightdm start

 

Дальше поставил cuda 6.5  ( sudo sh cuda****.run )

Построил примеры, все работает.

 

ЗЫ: В винде в 2010 собирал без проблем.

Share this post


Link to post
Share on other sites

Я тоже успешно ставил Куду штатными средствами.

Для установки разных версий любых программ и глобального системного выбора между ними существует: sudo update-alternatives --config <имя-пакета>

Для установки всего, чего нет в дистрибутивах есть ppa. Их создают заинтересованные пользователи. Для твоего случая тоже нашёлся.

Share this post


Link to post
Share on other sites

я как раз скачивал .deb, а не .run.

https://developer.nvidia.com/cuda-downloads

и потом когда я ставил какие то более новые(хотя непонятно какие надо ставить точно) драйвера для gtx-460 через графический менеджер пакетов, то это удалило весь cuda-toolkit. Помниться более древняя ubuntu сама предложила поставить актуальные драйвера.

 

ЗЫ: В винде в 2010 собирал без проблем.

 

я вспомнил, что там еще проблема в том, что руководство под vs2012

http://openbiometrics.org/doxygen/latest/windows_msvc.html

 

а для qt нету готовой сборки под 2010 и чтобы x64.

во всяком случае в официальных репозиторях

http://download.qt-project.org/official_releases/qt/

хотя

http://stackoverflow.com/questions/17238127/qt-5-64-bit-for-windows-and-vs2010

http://habrahabr.ru/post/79233/

 

вообщем попробую это

http://sourceforge.net/projects/qtx64/files/qt-x64/5.1.1/msvc2010/

 

п.с. даже не знаю может уже стоит переходить на 2012?

Share this post


Link to post
Share on other sites

Я перешел на vs2012 несколько месяцев уже как.

Пока проблем нет, все совместимо.

Share this post


Link to post
Share on other sites

ну вообщем использую win7 x64 vs2010 x64  qt 5.1.1 opengl x64 opencv 2.4.9

qt и opencv prebuild

скачивать просто архив с github кстати нельзя, точнее не всегда можно.

https://github.com/biometrics/openbr/issues/259#issuecomment-58555441

на 6 шаге

для cmake использовал

cmake -G "CodeBlocks - NMake Makefiles" -DCMAKE_PREFIX_PATH="C:/opencv/build/x64/vc10/staticlib;C:/Qt/qt-5.1.1-x64-msvc2010-opengl/qt-5.1.1-x64-msvc2010-opengl" -DCMAKE_INSTALL_PREFIX="./install" -DBR_INSTALL_DEPENDENCIES=ON -DCMAKE_BUILD_TYPE=Release ..

cmake -G "Visual Studio 10 2010" -DCMAKE_PREFIX_PATH="C:/opencv/build/x64/vc10/staticlib;C:/Qt/qt-5.1.1-x64-msvc2010-opengl/qt-5.1.1-x64-msvc2010-opengl" -DCMAKE_INSTALL_PREFIX="./install" -DBR_INSTALL_DEPENDENCIES=ON -DCMAKE_BUILD_TYPE=Release ..

"CodeBlocks - NMake Makefiles" чтобы потом собирать с помощью nmake

"Visual Studio 10 2010" чтобы собирать с помощью vs2010

cmake проходит успешно, но потом не видит хедеры от opencv и непонятно как их добавить.

как их подсунуть nmake вообще непонятно, а во втором случае я пробовал  прописывать в проекты дополнительную include dir, но это не помогло.

потом я взял cmake-gui

и выбрал

для Opencv C:\opencv\build

для QT C:\Qt\qt-5.1.1-x64-msvc2010-opengl\qt-5.1.1-x64-msvc2010-opengl\lib\cmake\Qt5Concurrent и т.д.

но началось ругаться что нету glu32

в итоге я поставил win8 SDK и всё нашлось и проект в cmake собрался, но проект в vs не собирался.
 

 

остановился на cmake-gui и в итоге в cmake файле openbr сверху прописал

 

set (OpenCV_DIR C:/opencv/build)
set (Qt5Concurrent_DIR C:/Qt/qt-5.1.1-x64-msvc2010-opengl/qt-5.1.1-x64-msvc2010-opengl/lib/cmake/Qt5Concurrent)
set (Qt5Core_DIR C:/Qt/qt-5.1.1-x64-msvc2010-opengl/qt-5.1.1-x64-msvc2010-opengl/lib/cmake/Qt5Core)
set (Qt5Gui_DIR C:/Qt/qt-5.1.1-x64-msvc2010-opengl/qt-5.1.1-x64-msvc2010-opengl/lib/cmake/Qt5Gui)
set (Qt5Network_DIR C:/Qt/qt-5.1.1-x64-msvc2010-opengl/qt-5.1.1-x64-msvc2010-opengl/lib/cmake/Qt5Network)
set (Qt5Sql_DIR C:/Qt/qt-5.1.1-x64-msvc2010-opengl/qt-5.1.1-x64-msvc2010-opengl/lib/cmake/Qt5Sql)
set (Qt5Svg_DIR C:/Qt/qt-5.1.1-x64-msvc2010-opengl/qt-5.1.1-x64-msvc2010-opengl/lib/cmake/Qt5Svg)
set (Qt5Widgets_DIR C:/Qt/qt-5.1.1-x64-msvc2010-opengl/qt-5.1.1-x64-msvc2010-opengl/lib/cmake/Qt5Widgets)
set (Qt5Xml_DIR C:/Qt/qt-5.1.1-x64-msvc2010-opengl/qt-5.1.1-x64-msvc2010-opengl/lib/cmake/Qt5Xml)
set(CMAKE_PREFIX_PATH "C:\\Program Files (x86)\\Windows Kits\\8.0\\Lib\\win8\\um\\x64")

 

 

 

потом открыл проект через студию и скомпилировал

 

в path добавил папки

C:\Qt\qt-5.1.1-x64-msvc2010-opengl\qt-5.1.1-x64-msvc2010-opengl\bin

C:\opencv\build\x64\vc10\bin

 

единственное еще непонятно как в cmake сказать всё линковать статически.

Share this post


Link to post
Share on other sites

Не так давно начал писать под Debian в Eclipse первый проект и появились проблемы)

делал как в инструкции на сайте opencv for eclipse http://docs.opencv.org/doc/tutorials/introduction/linux_eclipse/linux_eclipse.html

сам opencv установил, добавил в свойствах прокта как по ссылке usr/local/include/opencv

ну и в компановщике указал путь к либам /usr/local/lib

и для тестирования добавил только одно библиотеку opencv_core

при сборке прокта не ругался

 

**** Build of configuration Debug for project TestCV ****

make all
Building file: ../src/main.cpp
Invoking: Cross G++ Compiler
g++ -I/usr/local/include/opencv -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/main.d" -MT"src/main.d" -o "src/main.o" "../src/main.cpp"
Finished building: ../src/main.cpp
 
Building target: TestCV
Invoking: Cross G++ Linker
g++ -L/usr/local/lib -o "TestCV"  ./src/main.o   -lopencv_core
Finished building target: TestCV
 

**** Build Finished ****

далее как по инструкции надо запустить сам проект, а при запуске у меня выдаёт следующее

 

/home/roman/Work/Cpp/TestCV/Debug/TestCV: error while loading shared libraries: libopencv_core.so.2.4: cannot open shared object file: No such file or directory
 

не понятно что делал не так...

Share this post


Link to post
Share on other sites

вопрос снимается с повестки дня) я забыл сконфигурировать либы

зашёл в папку

/usr/local/lib
sudo ldconfig

и помогло

вот ссылка в конце даже готовый скрипт есть можно просто запустить как я понял http://askubuntu.com/questions/334158/installing-opencv

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×