OpenCV имеет обёртки (wrapper'ы) под большое количество языков программирования, но, конечно, когда речь идёт о максимальном быстродействии, то остаётся только один (два) язык: С/С++. Попробуем рассмотреть процесс "установки" OpenCV 2.4.2 под MSVS 2010 Express Edition (взять можно здесь, нужна соответственно версия для С++).
OpenCV можно скачать здесь. Просто укажите папку, в которую необходимо распаковаться (это может быть просто диск "С:\" - и я даже рекомендовал бы распаковать библиотеку именно туда. Файлы не перемешаются, будьте спокойны).
OpenCV можно скачать здесь. Просто укажите папку, в которую необходимо распаковаться (это может быть просто диск "С:\" - и я даже рекомендовал бы распаковать библиотеку именно туда. Файлы не перемешаются, будьте спокойны).
Предполагается, что у вас IDE уже установлена и готова к работе. Нажимаем "File → New → Project":
Выбираем "Win32 Console Application":
Вводим имя нашего проекта (<Enter_name>) "OpenCV_HelloWorld", нажимаем "OK" и "Finish".
Затем слева, в "Solution Explorer" необходимо щелкнуть правой кнопкой мыши по своему проекту, выбрать "Properties".
Идём во вкладку "Configuration properties → VC++ Directories".
Здесь нас интересуют две строки: Include и Library Directories. Пусть папка, в которую вы распаковали OpenCV располагается в "C:\Opencv".
Тогда в строку Include Directories нам необходимо добавить "C:\Opencv\build\include\opencv" и
"C:\Opencv\build\include\".
В строку Library Directories необходимо добавить строку "C:\Opencv\build\x86\vc10\lib". Естественно, если вы используете другую версию Visual Studio, то вместо "vc10" должны быть соответственно "vc9" или "vc8".
Теперь нас интересует вкладка "Configuration properties → Linker → Input". В эту строку надо добавить следующее:
opencv_core242d.lib
opencv_imgproc242d.lib
opencv_highgui242d.lib
opencv_ml242d.lib
opencv_video242d.lib
Как несложно догадаться, последние цифры в названиях файлов - это номер версии OpenCV. Так что если вы используете, к примеру, версию 2.4.4, то файл opencv_core242d.lib надо переименовать в opencv_core244d.lib (и так все остальные), и смело копипастить отсюда в IDE.
Всё! Можно писать первую простенькую программку. Не забывайте инклюдить необходимые заголовки.
Тестовая программка:
#include "stdafx.h" #include <cv.h> #include <cxcore.h> #include <highgui.h> int _tmain(int argc, _TCHAR* argv[]) { IplImage* frame=cvLoadImage("C:\\Users\\Василий\\Desktop\\2.jpg",1); cvSmooth(frame,frame,CV_BLUR,3,0,2.0,2.0); // Немножко размоем изображение. Просто так, //чтобы потрогать функции OpenCV if(frame==NULL){ /* Если вдруг такой картинки нет */ printf("Кажется этот файл не существует"); exit(0); } cvNamedWindow("Hi", CV_WINDOW_AUTOSIZE ); cvShowImage("My Window",frame); cvSaveImage("image.jpg",frame); cvWaitKey();/* Ждем, пока вы что-нибудь не нажмете, иначе окошко просто "мелькнет" и вы можете даже ничего не заметить */ cvDestroyWindow( "Hi" ); return 0; }
16 комментариев:
Все делал по инструкции, но когда вставил ваш код в проект и нажал F5 вышло такое:
http://s019.radikal.ru/i604/1210/00/f47c16dd2b06.jpg
Причем
та библиотека в opencv есть! Я добавил её ещё в папку windows32, но не помогло.
ОС Windows 7 x64
Здравствуйте! В 64-разрядных системах библиотеки надо класть в папку "C:/Windows/SysWOW64"! Необходимые вам библиотеки находятся в папке opencv\build\x86\vc10\bin и в папке opencv\build\common\tbb\ia32\vc10 (нужны только dll'ки). Я особо не задумывался и просто скопировал их все в системную папку, но при распространении программы, конечно, нужно знать какие библиотеки не нужны, чтобы не таскать их мертвым грузом.
Удачи!
Здравствуйте. Подскажите пожалуйста можно ли с помощью openCV определять предметы на изображении???
Здравствуйте. Хочу дополнить, применительно к VS2010 x86.
Во избежание сообщений об ошибках обнаружения dll, нужно:
1) В переменную среды PATH нужно добавить путь к либам dll: путь_к_opencv\build\x86\vc10\bin
2) Скачать с http://threadingbuildingblocks.org/ последний TBB. Взять из скачанного архива файл tbb_debug.dll и положить в папку с программой.
Здравствуйте, Василий
У меня на работе такая задача: над конвейером по которому движутся таблетки висит камера, снимающая с определенной частотой. По снимкам требуется отбраковать таблетки по их контуру и цвету.
В общих чертах написал программу на матлабе, но он очень медленный.
Когда то я программировал на vb6 и чуть-чуть на С. Думаю сейчас написать тот же код на Visual C++ Express 2010. Затем надо будет передать программу для программиста для процессора.
Что Вы мне посоветуете? Не уверен, что сам без помощи смогу освоить С++ и OpenCV.
Не знаю за что браться, с чего начать, по каким книгам изучать.
Здравствуйте! Задача не выглядит очень сложной, можно попробовать сделать. А не могли бы вы прислать пару фотографий (желательно с пометками, какие объекты отбракованы), и я попробую помочь.
vas.gerasimchuk@gmail.com
Сделал всё плюс
Во избежание сообщений об ошибках обнаружения dll, нужно:
1) В переменную среды PATH нужно добавить путь к либам dll: путь_к_opencv\build\x86\vc10\bin
2) Скачать с http://threadingbuildingblocks.org/ последний TBB. Взять из скачанного архива файл tbb_debug.dll и положить в папку с программой.
При запуске отладки выдаёт
"ошибка при инициализации приложения 0xc0150002"
что делать
Большое спасибо, только по вашему посту смог наконец подключить эту несчастную OpenCV
Спасибо огромное. Только с помощью вашего поста подключил.
А что в РATn писать я его изменил и что делать не знаю.
Здравствуйте! Сделала всё по инструкции, почему-то мне выдались ошибки:
1>------ Построение начато: проект: OpenCVhelloworld, Конфигурация: Debug Win32 ------
1>OpenCVhelloworld.obj : error LNK2019: ссылка на неразрешенный внешний символ _cvDestroyWindow в функции _wmain
1>OpenCVhelloworld.obj : error LNK2019: ссылка на неразрешенный внешний символ _cvWaitKey в функции _wmain
1>OpenCVhelloworld.obj : error LNK2019: ссылка на неразрешенный внешний символ _cvSaveImage в функции _wmain
1>OpenCVhelloworld.obj : error LNK2019: ссылка на неразрешенный внешний символ _cvShowImage в функции _wmain
1>OpenCVhelloworld.obj : error LNK2019: ссылка на неразрешенный внешний символ _cvNamedWindow в функции _wmain
1>OpenCVhelloworld.obj : error LNK2019: ссылка на неразрешенный внешний символ _cvSmooth в функции _wmain
1>OpenCVhelloworld.obj : error LNK2019: ссылка на неразрешенный внешний символ _cvLoadImage в функции _wmain
1>D:\VS\openCV\OpenCVhelloworld\Debug\OpenCVhelloworld.exe : fatal error LNK1120: 7 неразрешенных внешних элементов
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Подскажите пожалуйста, что я не так могла сделать? С уважением, Клавдия
Здравствуйте! Помогите пожалуйста! у меня ошибка он не может запустить файл C:\Users\Ardak\Documents\Visual Studio 2010\Projects\OpenCV_HelloWorld\Debug\OpenCV_HelloWorld.exe
А как установить на VisualStudio2005
Судя по описанию нужна папка VC8 а там только с vc10 начинается
Была ошибка что библиотека не найдена. Нужно было скопировать в сорс папку (где хранится .ехе файл) библиотеки (.dll)
Ставил OpenCV 2.4.11 на VS2010. Там действительно пришлось поработать.
Ещё пути к dll пихал в "дополнительные зависимости"
И PATH модернизировал.
Ставил OpenCV 2.4.11 на VS2010. Там действительно пришлось поработать.
Ещё пути к dll пихал в "дополнительные зависимости"
И PATH модернизировал.
Отправить комментарий