Перейти к содержимому
Compvision.ru
Smorodov

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

Recommended Posts

Альфа версия руководства.

Установка и первый проект OpenCV_v2.pdf

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вопросы\уточнения:

1.возможно ли запороть уже работающую программу, использующую OpenCV№.№ если обновиться через SVN?

2.после каждого обновления надо ребилдить либы?

3.Что будет если в VS2008 в VC++ Directories будет указано

и

C:\OpenCV2.1\include\opencv

и

C:\Program Files\OpenCV2.2\include

C:\Program Files\OpenCV2.2\include\opencv

(а то у меня походу от этого unresolved external symbol лезут)

и еще в VS2010 VC++ Directories я так понимаю вынесены в свойства проекта так что будет без разницы,т.к. все привязано не к студии, а к самому проекту?

4.Не написано насчет PATH надо ли ее вообще использовать? если посмотреть cmd->path то у меня включено C:\OpenCV2.1\bin и C:\Program Files\OpenCV\bin которой вообще нет и которая видимо была создана CMake, достаточно ли включить например

C:\OpenCV2.1 или C:\? или в папке должны лежать все связанные с библиотекой dll-ки? (как дебаг так и релиз? для 2.2 они почему то разделились *_220d.dll и *_220.dll соответственно)

5.Обязательно ли указывать так заголовки?

#include <opencv2/objdetect/objdetect.hpp>

или есть какой то способ полегче?

6.и еще может глупый вопрос(я с этим не очень знаком), но можно ли как то использовать source код в своем проекте, не компилирую все в либы?(скажем из include папки взять *.h и подключить всю папку с сорцами .cpp) (и зачем это нужно готовить либы вообще? только появляются зависимости под студию 2008\2010, компилятор или ИДЕ)

7. Еще шаг 9-10 не ясен там и там мы подключаем одни и те же либы?

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1) Существующая программа может перестать компилироваться. Правда у меня такого с появления версии 2.2 не случалось, но если сменится номер версии, то скорее всего надо будет перенастраивать. Указать пути к библиотекам,сами библиотеки и пути к заголовкам, а так же проверить чтобы правильно подключались заголовки (#include<>).

2) Это по желанию. Но пока библиотеки не перестроены, будут использоваться те, что были построены в прошлый раз. И обновленные заголовочники, что может вызвать проблемы, но в рамках одной подверсии этого обычно не случается.

3) Лучше оставить что то одно. В vs2008 можно пути указывать в Directories, а можно в самом проекте, как 2010 не знаю.

4) Пути, я думаю, лучше задавать явно не надеясь на PATH, хотя если там ничего лишнего нет, то почему бы и не использовать (я так не делал, могу ошибаться). ДЛЛки у меня лежат в c:\OpenCV-2.2.0\bin\Release\ и c:\OpenCV-2.2.0\bin\Debug\

Проект в конфигурации отладки будет использовать библиотtки с "d" в конце названия, в конфигурации релиза будут использованы библиотеки без "d". Для запуска программы DLL нужно скопировать в папку с экзешником.

5) Да. Это "фича" последних версий, и думаю она сохраниться дальше.

6) Opencv допускает статическую линковку (проект одним файлом без DLL), но для этого не нужно каждый раз компилировать библиотеку. Да, и компиляция библиотеки достаточно длительное дело. Именно для отвязывания от компиляторов и IDE и используется CMAKE. А конечному пользователю это не важно.

7) В 9) указываем пути , а 10) файлы. Да это касается одних и тех же либов.

PS: Спасибо за вопросы, это поможет соорудить более понятный мануал.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Привет.Кто нибудь подскажет как создать проект без исходного кода для передачи заказчику?Какие библиотеки нужно кинуть в папку с программой,что подключать?Использую visual c++2008 и open cv 2.1.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, нужны будут только DLL и EXE.

Если вы отметили Build Package, то в директории win-install должны быть все необходимые дополнительные файлы.

могу в чем-то насчет win-instal ошибаться, независимое приложение компоновал достаточно давно.

Любой скомпилированный проект на С или С++ не нуждается в наличии исходного кода для запуска. Нужны только двоичные файлы и файлы с которыми работает сама программа. С и С++ в большинстве своем компиляторы, а не интерпретаторы.

Все зависимости программы можно посмотреть утилитой Dependency Walker.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Еще не описан такой очевидный\неочевидный момент при сборке как set as start up project когда надо скомпилировать либы, походу надо выбирать BUILD_ALL, так же не понятно зачем там INSTALL и UNINSTALL проекты, может они выдают установщики? как это было в более ранних версиях? (названия писал по памяти opencv2.2 пока удалил,т.к. до конца не разобрался)

+при конфигурации Cmake не описаны хоть как то выбираемые опции, но может оно и не надо для мануала get started.

и да вроде бы если dll указать в PATH то не надо их кидать в папку с exe.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На следующей неделе напишу бету, с учетом накопленной критики и пожеланий :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А если у заказчика неустановлен opencv?Необходимо ли какие-то dll кидать в папку с exe?И при компиляции,какие свойства выставлять(может пути к библиотекам независимо от места расположения папки спроектом)?

Объясните пожалуйста для чайника как все сделать.Могу кинуть проект,если необходимо.

У себя все компилится и работает(в свойставх проекта прописано,что подключать).А вот как быть для того,чтобы создать запускаемую программку для того у кого неустановлен open cv?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В папке с программой должны лежать все длл из директория Opencv\bin\release. Если запускаемый файл собран как релиз. Если собран отладочный, обычно их не поставляют заказчикам, то в папке с программой должны лежать все длл из папки Opencv\bin\debug.

И при запуске программа обычно пишет какой ей не хватает длл.

Программа редко использует все длл, так что методом удаления по одной (они вообще то должны соответствовать подключенным lib файлам), можете найти какие не нужны.

Длл от VS которые могут понадобиться лежат в диретории

c:\Program Files\Microsoft Visual Studio 9.0\VC\redist\

а конкретно, по-моему, вот отсюда надо скопировать все файлы

c:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\

файл с расширением .manifest тоже нужен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Когда вы говорите

В папке с программой должны лежать все длл из директория Opencv\bin\release

то имеется ввиду,что проетк собран как у вас написано в теме:Установка и первый проект OpenCV в картинках?А то у меня open cv устанавливался так сказать с помощью экзешника,если не ошибаюсь и такой директории у меня нет в bin

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

еще вопрос если я хочу править сорцы, то мне тогда надо либо подключать не либу, а сорцы или постоянно(после каждого изменения) их перекомпилировать в либу я правильно понимаю?

и еще если я пользуюсь либой, то я при дебаге не смогу ввойти в функцию по F10?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

С каким свойством нужно компилировать проект?В программе используются следующие заголовочные файлы

#include <cv.h>

#include <highgui.h>

#include <stdlib.h>

#include <stdio.h>

#include <math.h>

Так какие длл нужно кинуть в папку с exe,чтобы заказчик мог запустить у себя без наличия open cv и возможно visual?нужно ли для этого заново собирать проект с cmake,если у меня уже установлен на компютере opencv и с явным указанием библиотек в свойствах среды все работает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вопрос отпадает.Кому интересно.В "свойствах проекта-свойства конфигурации-компоновщик-ввод" на вкладке "дополнительные зависимости" написал:

cv210.lib

cxcore210.lib

highgui210.lib

cvaux210.lib

а в папку с exe-шником кинул

cv210.dll, cxcore210.dll,highgui210.dll, cvaux210.dll и затем перестроил проект.Кидаем папку на другой комп без open cv - запускаем exe-ура работает.А зависимости можно увидеть либо при debugger, либо при помощи отличной утилити

depends.exe.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Стоит добавить, что Cmake не любит русские символы.

Не совсем понятно, что происходит при запуске opencv.sln.

Также include файлы находятся не в тех местах, что указаны в инструкции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Стоит добавить, что Cmake не любит русские символы.

Не совсем понятно, что происходит при запуске opencv.sln.

Также include файлы находятся не в тех местах, что указаны в инструкции.

Про русские символы согласен.

Если можно, то поясните пожалуйста об include файлах.

В инструкции указаны пути к директориям include для каждого модуля.

Остальная часть пути указывается в директиве #include <> в листинге программы.

У меня с заголовочниками проблем нет. Может дело в разных версиях?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Очень хорошо написано :)

Только немного оптимизирую для ленивых:

добавлять в .pro файл можно только

INCLUDEPATH += C:/OpenCV-2.2.0/include C:/OpenCV-2.2.0/include/opencv
LIBS += c:/OpenCV-2.2.0/GCCbin/lib/*.a[/code]

( Мои директории несколько отличаются )

PS: по поводу сборки из репозитария, вроде у меня была такая проблема. Решилась, насколько помню, путем скачивания новой версии GCC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Очень хорошо написано :)

Только немного оптимизирую для ленивых:

добавлять в .pro файл можно только

INCLUDEPATH += C:/OpenCV-2.2.0/include C:/OpenCV-2.2.0/include/opencv

LIBS += c:/OpenCV-2.2.0/GCCbin/lib/*.a

( Мои директории несколько отличаются )

PS: по поводу сборки из репозитария, вроде у меня была такая проблема. Решилась, насколько помню, путем скачивания новой версии GCC.

Спасибо! Учту, что лучше подключать вашим способом. А Вы не могли бы примерчик скинуть вывода IplImage* на форму Qt (скажем в QGraphicsView)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо! Учту, что лучше подключать вашим способом. А Вы не могли бы примерчик скинуть вывода IplImage* на форму Qt (скажем в QGraphicsView)?

Наши люди поработали уже над этим :)

http://locv.ru/wiki/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:OpenCV_%D0%B8_Qt

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если можно, то поясните пожалуйста об include файлах.

В инструкции указаны пути к директориям include для каждого модуля.

Инструкция часть 3 пункт 8, пути к заголовочным файлам:

OpenCV-2.2.0/modules/core/include

OpenCV-2.2.0/modules/highgui/include и т.д. у меня почему-то не было.

Зато нашёл такие

OpenCV-2.2.0/include/opencv

OpenCV-2.2.0/include/opencv2

Наверно из-за того что новее версия.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Инструкция часть 3 пункт 8, пути к заголовочным файлам:

OpenCV-2.2.0/modules/core/include

OpenCV-2.2.0/modules/highgui/include и т.д. у меня почему-то не было.

Зато нашёл такие

OpenCV-2.2.0/include/opencv

OpenCV-2.2.0/include/opencv2

Наверно из-за того что новее версия.

Сегодняшнее обновление из SVN.

post-1-0-73372700-1302199009_thumb.png

Там есть по крайней мере директория: opencv/modules/core/include

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ааа, понятно, ты прописываешь пути к файлам из репозитария, а я к тем что создались после сборки Cmake

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ааа, понятно, ты прописываешь пути к файлам из репозитария, а я к тем что создались после сборки Cmake

Да, интересный нюанс. Я сразу и не подумал. Надо указать в следующей версии руководства.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×