OpenCV

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
OpenCV
Логотип программы OpenCV
Скриншот программы OpenCV
Тип компьютерное зрение
Авторы Intel Corporation, Willow Garage Inc., Itseez Ltd.
Разработчик Itseez
Написана на C++, Java, Python
Операционные системы Linux, macOS, iOS, Android и др. UNIX-подобные, Windows
Первый выпуск 2006
Последняя версия
Репозиторий github.com/opencv/opencv
Состояние активное
Лицензия Apache License 2.0[2]
Сайт opencv.org (англ.)
Логотип Викисклада Медиафайлы на Викискладе

OpenCV (англ. open source computer vision library) — библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом. Реализована на Си/C++, также разрабатывается для Python, Java, Ruby, Matlab, Lua и других языков[3]. Может свободно использоваться в академических и коммерческих целях — распространяется в условиях лицензии BSD.

Первая версия OpenCV была написана на Си[3], начиная со второй версии был осуществлён переход на C++[3]. Все новые разработки и алгоритмы появляются в API C++[3]. Поддерживается привязки на Python, Java и MATLAB/Octave.

Значительная часть проекта разработана российской компанией Itseez, поглощённой в мае 2016 года корпорацией Intel[4][5].

Поддерживается на Microsoft Windows (компиляторы Microsoft Visual C++ (6.0, .NET 2003), Intel Compiler, Borland C++, Mingw (GCC 3.x)), Windows RT, Linux (GCC 2.9x, 3.x, Intel Compiler), macOS, Android, iOS.

Поддерживаемые средства графического интерфейса и видеозахвата в Windows — DirectShow, VfW, MIL, CMU1394; в Linux — V4L2, DC1394, FFMPEG; в macOS — QuickTime.

Основные модули

[править | править код]

В версии 2.2 библиотека была реорганизована. Вместо универсальных модулей cxcore, cvaux, highGUI и других было создано несколько компактных модулей с более узкой специализацией:

  • opencv_core — основная функциональность. Включает в себя базовые структуры, вычисления (математические функции, генераторы случайных чисел) и линейную алгебру, DFT, DCT, ввод-вывод для XML и YAML.
  • opencv_imgproc — обработка изображений (фильтрация, геометрические преобразования, преобразование цветовых пространств).
  • opencv_highgui — простой интерфейс, ввод-вывод изображений и видео.
  • opencv_ml — модели машинного обучения (SVM, деревья решений, обучение со стимулированием и т. д.).
  • opencv_features2d — распознавание и описание плоских примитивов (SURF[англ.], FAST и другие, включая специализированный фреймворк).
  • opencv_video — анализ движения и отслеживание объектов (оптический поток, шаблоны движения, устранение фона).
  • opencv_objdetect — обнаружение объектов на изображении (нахождение лиц с помощью алгоритма Виолы-Джонса, распознавание людей HOG).
  • opencv_calib3d — калибровка камеры, поиск стерео-соответствия и элементы обработки трёхмерных данных.
  • opencv_flann — библиотека быстрого поиска ближайших соседей (FLANN 1.5) и обёртки OpenCV.
  • opencv_contrib — сопутствующий код, ещё не готовый для применения.
  • opencv_legacy — устаревший код, сохранённый ради обратной совместимости.
  • opencv_gpu — ускорение некоторых функций OpenCV за счет CUDA, создан при поддержке NVidia.

Примечания

[править | править код]
  1. OpenCV 4.10.0 Is Now Available! — 2024.
  2. License (англ.)
  3. 1 2 3 4 Bradsky G., Kaehler A. Learning OpenCV Архивная копия от 28 декабря 2008 на Wayback Machine — O’Reilly, 2008. — C. 1 — ISBN 978-0-596-51613-0
  4. Intel Acquires Computer Vision for IOT, Automotive (амер. англ.). Intel Newsroom. Дата обращения: 19 августа 2022. Архивировано 19 августа 2022 года.
  5. East-West Digital News. Intel acquires Russian computer vision company Itseez (амер. англ.) (31 мая 2016). Дата обращения: 19 августа 2022. Архивировано 19 августа 2022 года.

Литература

[править | править код]
  • Кэлер А., Брэдски Г. Изучаем OpenCV 3 = Learning OpenCV 3. — М.: ДМК-Пресс, 2017. — 826 с. — ISBN 978-5-97060-471-7.
  • Буэно, Суарес, Эспиноса. Обработка изображений с помощью OpenCV = Learning Image Processing with OpenCV. — М.: ДМК-Пресс, 2016. — 210 с. — ISBN 978-5-97060-387-1.
  • Прохоренок Н. OpenCV и Java. Обработка изображений и компьютерное зрение. — СПб.: БХВ-Петербург, 2018. — 320 с. — ISBN 978-5-9775-3955-5.