Нахожу в тесте вопросы, которые в принципе не освещаются в лекции. Нужно гуглить на других ресурсах, чтобы решить тест, или же он всё же должен испытывать знания, полученные в ходе лекции? |
Самостоятельная работа 1: Сборка и установка библиотеки OpenCV. Использование библиотеки в среде Microsoft Visual Studio
3.3. Подключение заголовочных файлов в исходном коде приложения
Чтобы использовать функции библиотеки OpenCV при разработке собственных приложений, достаточно подключить заголовочный файл opencv.hpp, содержащий подключение большинства установленных модулей библиотеки, и пространство имен cv, в которое заключены все функции библиотеки.
#include <opencv2\opencv.hpp> using namespace cv;
Если заранее известно, что в процессе разработки будет использован функционал конкретного набора модулей, то можно подключить только заголовочные файлы соответствующих модулей, например:
#include <opencv2\core.hpp> #include <opencv2\objdetect.hpp> using namespace cv;
3.4. Компиляция и запуск программы. Возможные проблемы и пути их решения
Чтобы протестировать корректность настроек, подключите заголовочные файлы библиотеки OpenCV в файл main.cpp в соответствии с указаниями раздела 3.3 и скомпилируйте программу посредством нажатия клавиши F7, или используя пункт Build главного меню.
В процессе компиляции могут возникнуть следующие проблемы:
- Ошибка открытия заголовочного файла. Примерный текст ошибки
приведен ниже. Суть проблемы состоит в том, что указаны
неправильные пути до подключаемых заголовочных файлов
библиотеки. Решение – проверить в настройках проекта корректность
путей до заголовочных файлов (см. указания раздела 3.2).
fatal error C1083: Cannot open include file: 'opencv2/opencv.hpp': No such file or directory
- Ошибка линковки с модулем библиотеки OpenCV. Текст ошибки
приведен ниже. Проблема состоит в том, что указаны неправильные
пути до подключаемых lib-файлов. Решение – проверить в настройках
проекта корректность путей до lib-файлов (см. раздел 3.2).
LINK : fatal error LNK1104: cannot open file 'opencv_core242d.lib'
- Ошибки линковки, связанные с отсутствием реализации некоторых
функций библиотеки OpenCV. Пример такой ошибки приведен далее.
Проблема состоит в том, что не подключен модуль (lib-файл),
содержащий реализацию указанной в тексте ошибки функции. Решение
– добавить в список lib-файлов необходимый модуль (см. раздел 3.2).
error LNK2019: unresolved external symbol "void __cdecl cv::line(class cv::Mat &, class cv::Point_<int>,class cv::Point_<int>, class cv::Scalar_<double> const &,int,int,int)" (?line@cv@@YAXAAVMat@1@V?$Point_@H@1@1ABV?$Scalar_@N@1@HHH@ Z) referenced in function _main
Когда программа скомпилировалась, запустите ее. Для этого можно нажать сочетание клавиш Ctrl+F5, либо воспользоваться пунктом Start Without Debugging главного меню. При попытке запуска может возникнуть ошибка, показанная на рисунке (рис.8.21).
Проблема в том, что при исполнении выполняется поиск dll-файлов библиотеки OpenCV, и среда не находит указанные бинарные файлы. Существует два варианта решения данной проблемы:
- Задать в переменной окружения PATH пути до dll-файлов библиотеки OpenCV. В зависимости от способа установки библиотеки пути необходимо указать тот или иной путь (см. разделы 2.2 или 2.3).
- Скопировать указанный dll-файл к исполняемым файлам программы. Очевидно, что такой dll-файл будет не единственный, поэтому требуется последовательно копировать запрашиваемые файлы. Заметим, что если библиотека OpenCV собрана с поддержкой параллелизма, то также потребуется скопировать dll-файлы библиотеки Intel Threading Building Blocks (tbb_debug.dll, tbbmalloc_debug.dll или tbb.dll, tbbmalloc.dll), при условии, что TBB не установлена на рабочей машине, либо переменная окружения PATH не содержит путь до dll-файлов, входящих в ее состав.