Использование OpenCV 2.4.0 в проекте Visual Studio 2010

Я задал похожий вопросКак связать и использовать заголовки OpenCV?Но пока не повезло. Поэтому я решил задать новый, более конкретный вопрос.

Может кто-нибудь сказать мне, какие специфичные для OpenCV папки или файлы мне нужно включить в мой проект C ++ - и как я могу включить их? Я установил OpenCV 2.4.0 на диск C: \. Я посмотрел учебники на веб-сайте openCV, но они предназначены для более старой версии (OpenCV 2.1) и ссылаются на несуществующие сейчас файлы, такие как, например, objdetect.hpp.

Пожалуйста помоги. Благодарю.

 Jav_Rock31 мая 2012 г., 11:52

Ответы на вопрос(2)

Решение Вопроса

Увидетьhttp://docs.opencv.org/doc/tutorials/introduction/windows_visual_studio_Opencv/windows_visual_studio_Opencv.html#windows-visual-studio-how-to

Добавьте их в свой stdafx.h

#include <opencv2/core/core.hpp>        // cv::Mat etc, always need this
#include <opencv2/imgproc/imgproc.hpp>  // all the image processing functions
#include <opencv2/highgui/highgui.hpp>  // Display and file I/O

Предполагая, что вы установили OPENCV_DIR в место, куда вы положили opencv, например.OPENCV_DIR=c:\opencv2.4\opencv

Затем установите каталоги VC ++ в настройках проекта на Включить добавить$(OPENCV_DIR)\include и в библиотеку добавить$(OPENCV_DIR)\lib

Затем во вкладке «Компоновщик» добавить opencv_core240.lib (opencv_core240D.lib для отладки) opencv_imgproc240.lib и opencv_highgui240.lib и т. д.

 31 мая 2012 г., 19:58
@kevin - каждая другая библиотека должна включать ядро, так как вы можете использовать imgproc, но не highgui или vv. «C / C ++»; способ сделать это на уровне программы, а не включать в цепочку других включений. C ++ STL еще хуже, вам нужно знать дерево наследования, чтобы получить включения для простой консольной печати
 31 мая 2012 г., 19:35
@Kevin - вы всегда можете создать & quot; opencv.hpp & quot; который включает в себя все остальные, но это то, что делает предварительно скомпилированный заголовок в любом случае. К сожалению, количество библиотек увеличивается, поскольку им приходится выделять функции, которые запатентованы в некоторых странах, хотя, например, будет один opencv_global.lib. телефоны, на которых сложнее иметь много функций
 31 мая 2012 г., 19:32
Первое, о чем я здесь думаю, это «почему библиотеки не всегда содержат ядро?» Но это что-то более подходящее для веб-сайта OpenCV.
 31 мая 2012 г., 19:44
Я не имею в виду "всегда включать" Я имею в виду, что если вам всегда нужно включать этот один заголовок, чтобы другие работали, то почему эти другие не включают его, сохраняя, таким образом, еще одну строку, которая не нужна пользователю в их файле? Что-то подсказывает мне, что они есть, и дополнительные включения лишние, но я раньше не использовал эту библиотеку, и это только первое, что пришло мне в голову, когда я посмотрел на ваш фрагмент. Если я просто неверно истолковал ваш фрагмент, то простите меня.

Структура папок OpenCV изменилась в версии 2.4, поэтому вы должны использовать другую папку, кроме упомянутой в руководстве:

Point OPENCV_DIR to the build-directory (e.g. C:\opencv\build), NOT the platform-specific dir. The Path-Variable must point to your platform-specific bin-directory (e.g. %OPENCV_DIR%\x86\vc10\bin)... ...same for the Linker properties (e.g. $(OPENCV_DIR)\x86\vc10\lib)

Ваш ответ на вопрос