OpenCV
| OpenCV | |
|---|---|
| | |
| Тип | компьютерное зрение |
| Автор | Intel Corporation, Willow Garage Inc., Itseez Ltd. |
| Разработчик | Itseez |
| Написана на | C++, Java, Python |
| Операционная система | Linux, Mac OS X, iOS, Android и др. UNIX-подобные, Windows |
| Первый выпуск | 2006 |
| Последняя версия | 4.6.0 (Июнь 2022[1]) |
| Состояние | активное |
| Лицензия | BSD |
| Сайт | opencv.org |
OpenCV (англ. Open Source Computer Vision Library, библиотека компьютерного зрения с открытым исходным кодом) — библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом. Реализована на C/C++, также разрабатывается для Python, Java, Ruby, Matlab, Lua и других языков[2]. Может свободно использоваться в академических и коммерческих целях — распространяется в условиях лицензии BSD.
Второй крупный апдейт OpenCV был выпущен в октябре 2009 года. OpenCV 2 включает в себя серьезные изменения в интерфейсе C++, направленные на упрощение, улучшение безопасности, введение новых функций и увеличение производительности (особенно для многоядерных систем). Официальные релизы теперь выпускаются каждые шесть месяцев[3], а разработка ведется независимой российской командой при поддержке коммерческих корпораций.[4] В мае 2016 года Intel подписала соглашение о приобретении Itseez[5], ведущего разработчика OpenCV.[6]
Применение
- Для утверждения общего стандартного интерфейса компьютерного зрения для приложений в этой области. Для способствования росту числа таких приложений и создания новых моделей использования PC.
- Сделать платформы Intel привлекательными для разработчиков таких приложений за счёт дополнительного ускорения OpenCV с помощью Intel® Performance Libraries (Сейчас включают IPP (низкоуровневые библиотеки для обработки сигналов, изображений, а также медиа-кодеки) и MKL (специальная версия LAPACK и FFTPack)). OpenCV способна автоматически обнаруживать присутствие IPP и MKL и использовать их для ускорения обработки.
Поддерживаемые платформы и инструменты
Сами библиотеки:
- Microsoft Windows: компиляторы Microsoft Visual C++ (6.0, .NET 2003), Intel Compiler, Borland C++, Mingw (GCC 3.x).
- Windows RT: портирован на ARM компанией Itseez[7].
- Linux: GCC (2.9x, 3.x), Intel Compiler: «./configure-make-make install», RPM (spec файл включен в поставку).
- Mac OS X: GCC (3.x, 4.x).
- Android.
- iOS.
- Используются C и «облегченный» C++. Прагмы и условная компиляция используются очень ограниченно.
Средства GUI, захват видео:
Документация: статический HTML, PDF.
Основные модули
В версии 2.2 библиотека была реорганизована. Вместо универсальных модулей cxcore, cvaux, highGUI и других было создано несколько компактных модулей с более узкой специализацией:
- opencv_core — основная функциональность. Включает в себя базовые структуры, вычисления (математические функции, генераторы случайных чисел) и линейную алгебру, DFT, DCT, ввод/вывод для XML и YAML и т. д.
- opencv_imgproc — обработка изображений (фильтрация, геометрические преобразования, преобразование цветовых пространств и т. д.).
- opencv_highgui — простой UI, ввод/вывод изображений и видео.
- 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.
Язык программирования
OpenCV написан на C++, как и его основной интерфейс, но с частичным использованием интерфейса C. Все новые разработки и алгоритмы появляются в интерфейсе C++. Поддерживается Python, Java и MATLAB/OCTAVE (например, методы OpenCV cv.line[8], OpenCV cv2.cvtcolor[9], OpenCV cv2.circle[10]). API для этих интерфейсов можно найти в онлайн-документации[11].
Примечания
- ↑ Releases. Дата обращения: 20 сентября 2019. Архивировано 29 августа 2019 года.
- ↑ Bradsky G., Kaehler A. Learning OpenCV Архивная копия от 28 декабря 2008 на Wayback Machine — O’Reilly, 2008. — C. 1 — ISBN 978-0-596-51613-0
- ↑ OpenCV change logs: http://code.opencv.org/projects/opencv/wiki/ChangeLog Архивировано 15 января 2013 года.
- ↑ OpenCV Developer Site: http://code.opencv.org Архивировано 13 января 2013 года.
- ↑ Intel Acquires Computer Vision for IOT, Automotive (англ.) ?. Intel Newsroom. Дата обращения: 19 августа 2022.
- ↑ East-West Digital News. Intel acquires Russian computer vision company Itseez (англ.) ? (31 мая 2016). Дата обращения: 19 августа 2022.
- ↑ Блог компании «Itseez» Как мы портировали OpenCV на WindowsRT Архивировано 8 февраля 2014 года.
- ↑ OpenCV cv.line (11 октября 2021). Дата обращения: 12 октября 2021. Архивировано 27 октября 2021 года.
- ↑ OpenCV cv2.cvtcolor (11 октября 2021). Дата обращения: 12 октября 2021. Архивировано 27 октября 2021 года.
- ↑ OpenCV cv2.circle (11 октября 2021). Дата обращения: 12 октября 2021. Архивировано 27 октября 2021 года.
- ↑ OpenCV modules (11 октября 2021). Дата обращения: 12 октября 2021. Архивировано 19 октября 2021 года.
Литература
- Кэлер А., Брэдски Г. Изучаем 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.
Ссылки
- Сайт OpenCV. Архивная копия от 20 августа 2020 на Wayback Machine
- Документация OpenCV Архивная копия от 15 августа 2020 на Wayback Machine
- Краткая история проекта OpenCV. Архивная копия от 18 марта 2017 на Wayback Machine [неавторитетный источник?]
- OpenCV 2.4.3 Архивная копия от 3 октября 2017 на Wayback Machine[неавторитетный источник?]
- Emgu CV — регулярно-обновляемая привязка для C# Архивная копия от 17 июня 2008 на Wayback Machine
- SharperCV — привязка для C#
- Привязки для Python. Будет включена в следующую версию OpenCV Архивная копия от 16 января 2009 на Wayback Machine
- OpenCV шаг за шагом. Уроки OpenCV по-русски от Чеширского Кота. Архивная копия от 14 ноября 2010 на Wayback Machine
- Компьютерное зрение и машинное обучение в PHP используя библиотеку OpenCV Архивная копия от 19 июня 2018 на Wayback Machine