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

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

Recommended Posts

Предварительная версия перевода шпаргалки (opencv_cheasheet.pdf)

opencv_cheatsheet_rus_v1.pdf

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


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

Подскажите, какие общие заголовочные файлы должны присутствовать в проекте всегда? А то у меня Visual 2010 ругается на отсутствие оных и выдает всякого рода эксепшены (один из них в аттаче)

post-4146-0-95278300-1304452865_thumb.pn

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


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

Это не из-за заголовочных файлов. Листинг покажите.

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


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

Это не из-за заголовочных файлов. Листинг покажите.

Я тот пример уже стер, но в этом тоже не работает

#include "stdafx.h"



#include <highgui.h>

// точка входа



int main()

{

IplImage *img = cvLoadImage(“D:\\1.jpg”);

cvNamedWindow(“Example1”, CV_WINDOW_AUTOSIZE); // Создаём окно

cvShowImage(“Example1”, img); // Выводим картинку в окно

cvWaitKey(0); // Ждём

cvReleaseImage(&img); // Освобождаем память из под картинки

cvDestroyWindow(“Example1”); // Удаляем окно

return 0;

}

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


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

Описание установки в первом посте темы читали?

Если библиотеки подключены правильно, то скорее всего просто файл не находит.

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


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

Описание установки в первом посте темы читали?

Если библиотеки подключены правильно, то скорее всего просто файл не находит.

Установку делал с сайта TroyashkA и там всё гуд. Пример взял Ваш с pdf-ки, работает. Затем скопировал папку c cолюшном, дабы не создавать новую и уже из той папки открыл .sln. Наваял этот код, по идее должен работать, но никак :nurse: после работы совсем моск не варит )

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


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

Установку делал с сайта TroyashkA и там всё гуд. Пример взял Ваш с pdf-ки, работает. Затем скопировал папку c cолюшном, дабы не создавать новую и уже из той папки открыл .sln. Наваял этот код, по идее должен работать, но никак :nurse: после работы совсем моск не варит )

Попробуй закинуть в папку твой_проект/Debug библиотеки OpenCV. Вполне возможно, что ты не поставил вначале установки "Add OpenCV to the system PATH for all/current user". И у тебя не хватает какой-то библиотеки ... хотя информации мало, надо разбираться :)

Для проверки, зайди Пуск -> выполнить -> rundll32.exe sysdm.cpl, EditEnvironmentVariables

Выбери PATH -> Изменить

Проверь наличие в строке "C:\OpenCV2.2\bin" (ну или куда_ты_там_устанавливал_OpenCV2.2\bin)

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


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

на 16 пункте когда нажумаю Generate? происходит следующие:

Detected version of GNU GCC: 44 (404)

Could NOT find PythonInterp (missing: PYTHON_EXECUTABLE)

Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)

IPP detected:

Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)

Parsing 'cvconfig.h.cmake'

CMake Warning (dev) at CMakeLists.txt:1250 (add_subdirectory):

The source directory

C:/OpenCV2.2_QT/include

does not contain a CMakeLists.txt file.

CMake does not support this case but it used to work accidentally and is

being allowed for compatibility.

Policy CMP0014 is not set: Input directories must have CMakeLists.txt. Run

"cmake --help-policy CMP0014" for policy details. Use the cmake_policy

command to set the policy and suppress this warning.

This warning is for project developers. Use -Wno-dev to suppress it.

General configuration for opencv 2.2.0 =====================================

Built as dynamic libs?: ON

Compiler:

C++ flags (Release): -Wall -march=i686 -ffunction-sections -O3 -DNDEBUG -fomit-frame-pointer -O3 -ffast-math -msse -msse2 -mfpmath=387 -DNDEBUG

C++ flags (Debug): -Wall -march=i686 -ffunction-sections -g -O0 -ggdb3 -DDEBUG -D_DEBUG

Linker flags (Release):

Linker flags (Debug):

GUI:

QT 4.x: 1

QT OpenGL support: 1

Image I/O:

JPEG: build

PNG: build

TIFF: build

JPEG 2000: build

OpenEXR: NO

Video I/O:

VideoInput: 1

Interfaces:

Python: ON

Python interpreter: PYTHON_EXECUTABLE-NOTFOUND

Python numpy: NO (Python interface will not cover OpenCV 2.x API)

Use IPP: NO

Use TBB: NO

Use Cuda: No

Use Eigen2: NO

Documentation:

Build PDF NO

Doxygen HTMLs NO

Install path: C:/OpenCV2.2_QT/build

cvconfig.h is in: C:/OpenCV2.2_QT/build

-----------------------------------------------------------------

И в следствии чего не создается файл mingw32-make.

в чем проблема?

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


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

2vomchik,

Ответ кроется в ответе :)


Could NOT find PythonInterp (missing: PYTHON_EXECUTABLE)

Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS) 

IPP detected:

Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)

Мой корявый (а может и нет :) ) перевод с английского:

Невозможно найти PythonInterp (отсутствует: PYTHON_EXECUTABLE)

Невозможно найти PythonLibs (отсутствует: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)

Найден IPP:

Невозможно найти Doxygen (отсутствует: DOXYGEN_EXECUTABLE)

Видимо, от хотенья всего и сразу по доброте своей душевной вы понаставили 100500 галочек в диалоге CMAKE, вот он вам и ругается, что у вас нету того-то сего-то. Как вариант - оставить только те, которые вам реально нужны, либо докачать/настроить недостающие B)

p.s. Да, и вот только что заметил - вы видимо еще и неправильно указываете путь к OpenCV:

CMake Warning (dev) at CMakeLists.txt:1250 (add_subdirectory):

The source directory

C:/OpenCV2.2_QT/include

does not contain a CMakeLists.txt file.

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


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

@ TroyashkA

Спасибо за ответ.

Короче получилось у меня все собрать.

Теперь другая у меня проблема(((

Создаю проект(QT Creator), добавляю пример который привиден у вас на сайте, поменял путь к картинке.

При нажатии CTRL+R получаю такое:

Starting C:\qtproject\OpenCV-build-desktop\release\OpenCV.exe...

C:\qtproject\OpenCV-build-desktop\release\OpenCV.exe exited with code -1073741515

но не запускается приложение, что делать?

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


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

@ TroyashkA

Спасибо за ответ.

Короче получилось у меня все собрать.

Теперь другая у меня проблема(((

Создаю проект(QT Creator), добавляю пример который привиден у вас на сайте, поменял путь к картинке.

При нажатии CTRL+R получаю такое:

Starting C:\qtproject\OpenCV-build-desktop\release\OpenCV.exe...

C:\qtproject\OpenCV-build-desktop\release\OpenCV.exe exited with code -1073741515

но не запускается приложение, что делать?

Скорее всего проблема в том, что OpenCV.exe не может найти DLL OpenCV.

Гляньте еще раз руководство в моем блоге ... пункт 8.3. Там добавьте путь к *dll файлам OpenCV и перезапустите QT

Иными словами добавьте к переменной PATH еще вот это (на примере руководства из блога):

;C:\OpenCV2.2_QT\opencv\pro\bin

Вот как-то так.

  • Like 1

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


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

Сделал все как в руководстве написано, а он мне при компиляции примера (из руководства) пишет:

1>------ Построение начато: проект: First, Конфигурация: Debug Win32 ------

1>Компоновка...

1>LINK : fatal error LNK1104: не удается открыть файл ''opencv_core220d.lib''

1>Журнал построения был сохранен в "file://c:\Users\UserName\Documents\Visual Studio 2008\Projects\First\First\Debug\BuildLog.htm"

1>First - ошибок 1, предупреждений 0

========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

Решил проблему opencv_core220d.lib надо заменить на opencv_core232d.lib

Теперь не работает потому что пишет:

Программа "[2640] First.exe: Машинный код" завершилась с кодом -1073741515 (0xc0000135).

на компьютере отсутствует opencv_highgui232d.dll

И эту решил прописав переменную PATH на D:\OPENCV_Binary\bin\Debug

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


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

Есть два решения:

1) Прописать в переменной Path путь к директории, где лежат dll-ки (поддиректория bin в директории где установлен opencv).

2) Переписать dll-ку в директорию к исполняемому файлу.

Первое предпочтительнее.

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


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

Поразбирался немного с CMake, результат в архиве статья и файлы.

Пробовал пока только с VS2010, но если кто захочет разобраться можно взять за основу.

Радует что скрипт сам определяет версию OpenCV и это отражается в именах подключаемых файлов, корректно подключает Debug и Release профили библиотек.

Находит в папке где лежит CMakeLists.txt (папке проекта) все *.cpp и *.h файлы и добавляет их в проект.

В общем, это HelloWorld - генератор, думаю что с GCC тоже должно работать, может быть нужны будут небольшие правки.

Для CodeBlocks проект создается, но opencv у меня собран не GCC-шный, соответственно библиотеки не находит и проверить работоспособность не могу.

CmakeOpenCV.rar

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


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

чо то у меня не завелось.

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

(такое и при сборке опенцв было, но собирается вроде нормально)

+ почему то из всех установленных версий опенцв нашло Opencv2.1

OpenCV_DIR C:/TBB_OpenCV2.1

и после нескольких нажатий configure пишет и дальше не идет.

CMake Error at CMakeLists.txt:22 (FILE):

file STRINGS file

"C:/TBB_OpenCV2.1/modules/core/include/opencv2/core/version.hpp" cannot be

read.

вроде бы можно сделать визард для VS ? чтобы делать пустой настроенный проэкт со всем подключенными библиотеками.

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


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

Да, над скриптом надо еще работать. У меня просто библиотека собрана в директории с исходниками, возможно у Вас требуется ввести разделение между директориями с исходниками и с бинарниками. Мне кажется, что нужную версию можно выбрать, указав ему директорию вручную, где он и найдет файл OpenCVConfig.cmake.in и ему подобные.

Вот кусок OpenCVConfig.cmake.in лежащего в корневой директории OpenCV:

# ===================================================================================
# The OpenCV CMake configuration file
#
# ** File generated automatically, do not modify **
#
# Usage from an external project:
# In your CMakeLists.txt, add these lines:
#
# FIND_PACKAGE(OpenCV REQUIRED )
# TARGET_LINK_LIBRARIES(MY_TARGET_NAME ${OpenCV_LIBS})
#
# This file will define the following variables:
# - OpenCV_LIBS : The list of libraries to links against.
# - OpenCV_LIB_DIR : The directory where lib files are. Calling LINK_DIRECTORIES
# with this path is NOT needed.
# - OpenCV_INCLUDE_DIRS : The OpenCV include directories.
# - OpenCV_COMPUTE_CAPABILITIES : The version of compute capability
# - OpenCV_VERSION : The version of this OpenCV build. Example: "@OPENCV_VERSION@"
# - OpenCV_VERSION_MAJOR : Major version part of OpenCV_VERSION. Example: "@OPENCV_VERSION_MAJOR@"
# - OpenCV_VERSION_MINOR : Minor version part of OpenCV_VERSION. Example: "@OPENCV_VERSION_MINOR@"
# - OpenCV_VERSION_PATCH : Patch version part of OpenCV_VERSION. Example: "@OPENCV_VERSION_PATCH@"
#
# Advanced variables:
# - OpenCV_SHARED
# - OpenCV_CONFIG_PATH
# - OpenCV_INSTALL_PATH
# - OpenCV_LIB_COMPONENTS
# - OpenCV_EXTRA_COMPONENTS
# - OpenCV_USE_MANGLED_PATHS
# - OpenCV_HAVE_ANDROID_CAMERA
# - OpenCV_SOURCE_PATH
#
# =================================================================================================
[/code]

ЗЫ: По поводу визарда, то по мне, он менее удобен по сравнению с CMake, хотя на вкус и цвет все тараканы разные :)

ЗЫЗЫ: Заменил архив на новую версию.

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


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

CMake как бы универсальнее, но я не умею пользоваться ни тем ни тем :rolleyes:

можно как то подружить смаке с русскими путями?

кстати я тут пользовался еще смаке для сторонней программы и при создании солюшена там есть проэкты ALL_BUILD и ZERO_CHECK для чего они служат и их можно удалять?

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


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

ALL_BUILD и ZERO_CHECK полезные проекты, all_build - строит весь проект, а ZERO_CHECK проверяет не поменялось - ли что в cmake-вском файле, и если поменялось, вызывает cmake для перестроения проекта.

Про ALL_BUILD:

ALL_BUILD- This project depends on all of the libraries and executables in a project, and can be selected as the active project to build everything in the system. This is required because CMake allows for extra utility projects to be put in the system that you may not want run each time with the Batch build facility of the Visual Studio. In addition, the ALL_BUILD target makes it easier to select between configurations in a large project. The Microsoft Visual C++ Batch build facility requires you to select the configuration for each library or executable by hand. This can be done once for all targets using CMake's ALL_BUILD target.
  • Like 1

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


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

у меня постоянно вылетает

Could not copy from: C:/Program Files/CMake 2.8/share/cmake-2.8/Templates/CMakeVSMacros2.vsmacros

to: C:/Documents and Settings/User/Iie aieoiaiou/Visual Studio 2008/Projects/VSMacros80/CMakeMacros/CMakeVSMacros2.vsmacros

т.е. Мои документы по русски и cmake это не переваривает, но вроде бы это не помешало собрать опенцв.

+еще вопрос, после сборки проэкта .cpp и .h файлы должны лежать вместе с проэктом или это как настроишь?

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


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

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

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


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

Всем привет у меня такой вопрос я имею исключение при компиляции

Необработанное исключение в "0x7c812afb" в "QPoptimizationSMO.exe": Исключение Microsoft C++: cv::Exception по адресу 0x0011edf0..
я не совсем понимаю что и почему у меня старое приложение нормально компилируется сейчас создаю новые получаю исключения использую MSVS 2010 и OpenCV 2.2 В конфигурациях выбрано debug каталоги включения: C:\OpenCV2.2\include C:\OpenCV2.2\include\opencv Каталоги библиотек C:\OpenCV2.2\lib И дополнительные зависимости: C:\OpenCV2.2\lib\opencv_core220d.lib C:\OpenCV2.2\lib\opencv_highgui220d.lib C:\OpenCV2.2\lib\opencv_video220d.lib C:\OpenCV2.2\lib\opencv_ml220d.lib C:\OpenCV2.2\lib\opencv_legacy220d.lib C:\OpenCV2.2\lib\opencv_imgproc220d.lib сам код программы пока минимален но всё равно выдаёт исключение

// QPoptimizationSMO.cpp: определяет точку входа для консольного приложения.

//


#include "stdafx.h"


#include <opencv2/video/tracking.hpp>

#include <opencv2/imgproc/imgproc.hpp>

#include <opencv2/highgui/highgui.hpp>


#include <iostream>

#include <ctype.h>


using namespace cv;

using namespace std;



int _tmain(int argc, _TCHAR* argv[])

{

	Mat img = imread("C:\Triangl\1_1.jpg");

	imshow("nmg",img);

	waitKey(0);

	return 0;

}

до этого писал приложение по искажению фотографий проект был собран так же, но всё запускалось и работает..

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

×