Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемaistconf.org
1 Библиотека OpenCV Архитектура и возможности Кирилл Корняков, Itseez Апрель 2013
2 Содержание 1.Общая информация 2.Архитектура и возможности 3.Ключевые концепции 4.Заключение
3 OpenCV Open-source Computer Vision Library 1.Более тысячи алгоритмов и функций компьютерного зрения 2.Кросс-платформенность 3.Производительность 4.Либеральная BSD лицензия
4 Панорамы улиц в картах Google (+ другие продукты) Система зрения робота PR2 компании Willow Garage Роботы для исследования поверхности Марса (проект NASA) Контроль качества монет (Центробанк Китая) Примеры использования
5 История NVIDIA Willow Garage Intel Используется во всем мире Применяется в академии и индустрии Разрабатывается профессионально, при участии сообщества
6 Информационные ресурсы
7 Инфраструктура разработки
8 Содержание 1.Общая информация 2.Архитектура и возможности 3.Ключевые концепции 4.Заключение
9 Фильтрация Сегментация Нахождение объектов Трансформации Обработка изображений Видео, Стерео, 3D Калибрация камер Сопоставление с помощью особых точек Построение карты глубины Ребра, контурный анализ Оптический поток Вычисление положения в пространстве Функциональность
10 Модули Алгоритмические модули core, imgproc, calib3d, video, ml, objdetect, features2d photo, stitching, videostab, superres contrib, legacy, nonfree, flann GPU модули gpu, ocl Инфраструктурные модули highgui, world python, java androidcamera, ts
11 OpenCV – базовая, в основном низкоуровневая библиотека. Предоставляет строительные блоки, кирпичики для приложений. Захват изображений Пред. обработка Извлечение особенностей Детектирование объектов, сегментация Распознавание, регистрация, вычисление положения в 3D, 3D реконструкция, анализ движения Принятие решений highguiimgproc imgproc, features2d imgproc, objdetect calib3d, contrib, video, stitching, videostab, ml ml? Типичное CV приложение OpenCV в приложениях
12 #include "opencv2/opencv.hpp" using namespace cv; int main(int argc, char** argv) { Mat img, gray; img = imread(argv[1], 1); imshow("original", img); cvtColor(img, gray, COLOR_BGR2GRAY); GaussianBlur(gray, gray, Size(7, 7), 1.5); Canny(gray, gray, 0, 50); imshow("edges", gray); waitKey(); return 0; } Как скомпилировать и запустить эту программу? Информация имеется в уроках на сайте с документацией.документацией Пример программы
13 Нужны компилятор и IDE для C/C++ Visual Studio Xcode GCC + make (Linux) А также CMake (необязателен, но желателен) По возможности, не используйте MinGW, Borland C++, Sun Studio и разные экзотические компиляторы. Разработка с OpenCV Eclipse + CDT QtCreator
14 Your application Dependencies: Eigen, IPP, JPEG, PNG, Jasper, multimedia TBB OpenCV Environment x86, x64ARMGPU Windows Linu x MacOSX MIPS CUDAOpenCLSSE, AVX Android iOSWinRT NEON GCD Concurrency PythonJava C cv::parallel_for_ OpenCV Acceleration API Hardware Operating System Threading API Bindings Library
15 Плюсы использования OpenCV 1.Переносимость – Кросс-платформенные приложения – Простота разработки и отладки 2.Производительность – Автоматическая акселерация – Корректность
16 Параллелизация История: OpenMP, TBB Native back-ends: GCD, Concurrency cv::parallel_for_ – TBB, Concurrency, GCD, C= (c stripes) cv::mutex OpenCV is fully re-enterable.
17 Содержание 1.Общая информация 2.Архитектура и возможности 3.Ключевые концепции 4.Заключение
18 cv::Mat Image data RGBRGBRGBRGBRGBRGBRGBRGBRGBRGB****** Image data RGBRGBRGBRGBRGBRGBRGBRGBRGBRGB****** cv::Mat Размеры, step Счетчик ссылок Указатель на данные cv::Mat Размеры, step Счетчик ссылок Указатель на данные Memory layout RGBRGBRGBRGB******************RGBRGBRGBRGB**********************… Memory layout RGBRGBRGBRGB******************RGBRGBRGBRGB**********************… cv::Mat Размеры, step Счетчик ссылок Указатель на данные cv::Mat Размеры, step Счетчик ссылок Указатель на данные cv::Mat Размеры ROI, step Счетчик ссылок Указатель на данные cv::Mat Размеры ROI, step Счетчик ссылок Указатель на данные
19 Mat M(480, 640, CV_8UC1); // Создаем полутоновую VGA картинку Rect roi(100, 200, 20, 20); // Определяем ROI Mat subM = M(roi); // выделяем ROI в отдельную // матрицу без копирования subM.at (0,1) = 255; // изменяем пиксель в ROI // и в исходном изображении Mat_ ::iterator it = subM.begin (), itEnd = subM.end (); // оцениваем резкость в выбранном ROI, // например для реализации автофокуса float contrast = 0.f; for(; it != itEnd; ++it) { uchar* ptr = &(*it); int dx = ptr[1] – ptr[-1], dy = ptr[subM.step] – ptr[-subM.step]; contrast += sqrtf((float)(dx*dx + dy*dy)); } Работа с матрицами
20 cv::Mat и std::vector std::vector XYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZ std::vector XYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZXYZ cv::Mat XYZ … XYZ cv::Mat XYZ … XYZ Массив из N точек Nx1, 3-канальное изображение cv::Mat Размеры, step Счетчик ссылок (отсутствует) Указатель на данные cv::Mat Размеры, step Счетчик ссылок (отсутствует) Указатель на данные
21 Ключевые концепции 1. cv::Mat – базовый тип 2. cv::Algorithm – основа для высокоуровневых алгоритмов 3. InputArray и OutputArray (Mat, std::vector, Matx, Vec or Scalar) Подробная информация на сайте с документацией.документацией
22 Содержание 1.Общая информация 2.Архитектура и возможности 3.Ключевые концепции 4.Заключение
23 Будущее библиотеки Микромодули (+ пользовательские модули) Hardware Abstraction Layer (модуль HAL) Повсеместное использование cv::Algorithm Новые платформы – WinRT, QNX (BlackBerry) Новые языки – MATLAB – C# (official support)
24 Ссылки 1.OpenCV 1.opencv.orgopencv.org 2.OpenCV TutorialsTutorials 3.Краткая история проекта OpenCV (ссылка)ссылка 2.Books 1.Лучшая современная книга по компьютерному зрению (на английском) : 2.Официальная книга про OpenCV: Computer-Vision-Library/dp/ Доступна на Озоне, описывает OpenCV 1.x. Завершается работа над вторым изданием. Computer-Vision-Library/dp/
25 Спасибо за внимание! Завтра состоится практическое занятие Вопросы?
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.