Не так давно лучшим ресурсом для ознакомления с алгоритмами компьютерного зрения был сайт библиотеки алгоритмов компьютерного зрения с открытым исходным кодом OpenCV. Эти алгоритмы приходилось создавать и настраивать самостоятельно, попутно осваивая CMake и другие межплатформенные инструменты. Итоговый результат мог не подойти нужной платформе. В этом случае необходимо было тщательно изучить алгоритм и настроить его для собственной системы — а это означало освоить OpenCL и его оптимизацию для своей платформы. Не то чтобы это было плохо…
Теперь приступить к работе с алгоритмами компьютерного зрения можно при помощи программного пакета Intel INDE, последнее обновление которого включает в себя готовую версию OpenCV, подходящую для устройств Windows и Android с процессорами Intel с графическим ядром Intel.
Раньше я уже сталкивался с библиотекой OpenCV. Это была версия 2.4.8, и мне пришлось приложить немало усилий для ее настройки, прежде чем процесс стал по-настоящему интересным. Я решил узнать, станет ли работа удобнее с появлением пакета Intel® INDE. Меня ждал приятный сюрприз.
Для начала необходимо скачать и установить OpenCV Intel® INDE (для этого также потребуется получить дополнительный серийный номер бета-версии). В нем вы обнаружите две очень полезные функции: мастер OpenCV, при помощи которого можно создавать приложения OpenCV, и дополнение Image Watch от Microsoft, позволяющее просматривать промежуточные результаты работы.
Начнем с мастера. Запустите Microsoft Visual Studio. Выберите пункт OpenCV, а затем — OpenCV Project for Windows (Проект OpenCV для Windows). Нажмите ОК.
![](https://habrastorage.org/files/e17/dc3/376/e17dc3376fe44e61a53255a5de7f9743.png)
Выполните сборку и запустите проект. Если у вас есть камера, при запуске приложения будет активирован детектор края Кэнни. Если камеры нет, на экране появятся два окна:
Входное изображение
![](https://habrastorage.org/files/759/564/849/759564849c634df788aaaec6a45f762c.png)
Выходное изображение
![](https://habrastorage.org/files/b6e/665/da9/b6e665da9fb5498e888b6e157821a35f.png)
Выглядит неплохо, но рассматривать изображение по умолчанию не особенно интересно. Я решил применить детектор края Кэнни к фотографии Генри — собаки нашего специалиста по вычислительной архитектуре Стивена Джанкинса:
![](https://habrastorage.org/files/ddd/9cc/1a5/ddd9cc1a56bc42bbbfb642778a050273.jpg)
Обычный рабочий процесс таков: изображение преобразовывается в режим градаций серого, а затем к нему применяется детектор края Кэнни. Результаты каждого этапа обработки можно просматривать с помощью подключаемого модуля Image Watch, установленного вместе с пакетом OpenCV Intel INDE. Для этого понадобится подключить модуль и внести пару изменений в код.
Нужно сделать так, чтобы фотография Генри была загружена в формате .ppm, а не .jpg. Обратите внимание, что OpenCV выполняет загрузку различных форматов изображений прозрачно. Помимо этого, для работы подключаемого модуля Image Watch нам необходимо изменить код и преобразовать изображения из UMat (стандартного формата OpenCV 3.0) в формат cv::Mat, ожидаемый плагином Image Watch:
Теперь добавим похожий код в трех точках: 1) после загрузки изображения, 2) после его преобразования в режим градаций серого и 3) после использования детектора края Кэнни. В каждом случае добавим точки останова рядом с переменной stub. Далее необходимо подключить модуль Image Watch с помощью меню View > Other Windows > Image Watch в Microsoft Visual Studio:
![](https://habrastorage.org/files/823/ff6/72b/823ff672bf2b43e886b43021f749af11.png)
При работе с кодом в режиме отладки в каждой точке останова можно просматривать изменения, которые появляются в изображении Генри под воздействием детектора края Кэнни:
![](https://habrastorage.org/files/c5f/1f5/526/c5f1f55269a94dd9bff82d5972f57829.jpg)
![](https://habrastorage.org/files/f15/be3/8cf/f15be38cfa6c4b66bee3f6c02c6c85d5.jpg)
Вот это уже гораздо интереснее! Мне не только не нужно самостоятельно выполнять сборку OpenCV — теперь я могу разрабатывать приложения OpenCV для графической платформы процессоров Intel и выполнять в них отладку без дополнительных настроек. С дополнительной информацией можно ознакомиться по ссылкам ниже.
Далее вы найдете исчерпывающие сведения о OpenCV Intel® INDE на английском языке.
Теперь приступить к работе с алгоритмами компьютерного зрения можно при помощи программного пакета Intel INDE, последнее обновление которого включает в себя готовую версию OpenCV, подходящую для устройств Windows и Android с процессорами Intel с графическим ядром Intel.
Раньше я уже сталкивался с библиотекой OpenCV. Это была версия 2.4.8, и мне пришлось приложить немало усилий для ее настройки, прежде чем процесс стал по-настоящему интересным. Я решил узнать, станет ли работа удобнее с появлением пакета Intel® INDE. Меня ждал приятный сюрприз.
Для начала необходимо скачать и установить OpenCV Intel® INDE (для этого также потребуется получить дополнительный серийный номер бета-версии). В нем вы обнаружите две очень полезные функции: мастер OpenCV, при помощи которого можно создавать приложения OpenCV, и дополнение Image Watch от Microsoft, позволяющее просматривать промежуточные результаты работы.
Начнем с мастера. Запустите Microsoft Visual Studio. Выберите пункт OpenCV, а затем — OpenCV Project for Windows (Проект OpenCV для Windows). Нажмите ОК.
![](https://habrastorage.org/files/e17/dc3/376/e17dc3376fe44e61a53255a5de7f9743.png)
Выполните сборку и запустите проект. Если у вас есть камера, при запуске приложения будет активирован детектор края Кэнни. Если камеры нет, на экране появятся два окна:
Входное изображение
![](https://habrastorage.org/files/759/564/849/759564849c634df788aaaec6a45f762c.png)
Выходное изображение
![](https://habrastorage.org/files/b6e/665/da9/b6e665da9fb5498e888b6e157821a35f.png)
Выглядит неплохо, но рассматривать изображение по умолчанию не особенно интересно. Я решил применить детектор края Кэнни к фотографии Генри — собаки нашего специалиста по вычислительной архитектуре Стивена Джанкинса:
![](https://habrastorage.org/files/ddd/9cc/1a5/ddd9cc1a56bc42bbbfb642778a050273.jpg)
Обычный рабочий процесс таков: изображение преобразовывается в режим градаций серого, а затем к нему применяется детектор края Кэнни. Результаты каждого этапа обработки можно просматривать с помощью подключаемого модуля Image Watch, установленного вместе с пакетом OpenCV Intel INDE. Для этого понадобится подключить модуль и внести пару изменений в код.
Нужно сделать так, чтобы фотография Генри была загружена в формате .ppm, а не .jpg. Обратите внимание, что OpenCV выполняет загрузку различных форматов изображений прозрачно. Помимо этого, для работы подключаемого модуля Image Watch нам необходимо изменить код и преобразовать изображения из UMat (стандартного формата OpenCV 3.0) в формат cv::Mat, ожидаемый плагином Image Watch:
#ifdef _DEBUG
{
//Проверка содержимого изображения в ImageWatch с помощью метода getMat:
cv::Mat mTest = imgInp.getMat(cv::ACCESS_READ);
//Разместите здесь оператор break и понаблюдайте за mTest в ImageWatch:
int stub = 0;
//mTest.release() вызывается автоматически, как для любой другой стековой переменной.
}
#endif
Теперь добавим похожий код в трех точках: 1) после загрузки изображения, 2) после его преобразования в режим градаций серого и 3) после использования детектора края Кэнни. В каждом случае добавим точки останова рядом с переменной stub. Далее необходимо подключить модуль Image Watch с помощью меню View > Other Windows > Image Watch в Microsoft Visual Studio:
![](https://habrastorage.org/files/823/ff6/72b/823ff672bf2b43e886b43021f749af11.png)
При работе с кодом в режиме отладки в каждой точке останова можно просматривать изменения, которые появляются в изображении Генри под воздействием детектора края Кэнни:
![](https://habrastorage.org/files/c5f/1f5/526/c5f1f55269a94dd9bff82d5972f57829.jpg)
![](https://habrastorage.org/files/f15/be3/8cf/f15be38cfa6c4b66bee3f6c02c6c85d5.jpg)
![](https://habrastorage.org/files/bb7/ea4/a81/bb7ea4a8195c4ba0a400b52111a3e488.jpg)
Вот это уже гораздо интереснее! Мне не только не нужно самостоятельно выполнять сборку OpenCV — теперь я могу разрабатывать приложения OpenCV для графической платформы процессоров Intel и выполнять в них отладку без дополнительных настроек. С дополнительной информацией можно ознакомиться по ссылкам ниже.
Далее вы найдете исчерпывающие сведения о OpenCV Intel® INDE на английском языке.
- Установка OpenCV Intel® INDE
- Начало работы c функцией OpenCV Intel® INDE
- Начало работы с OpenCV Intel® INDE для целевых устройств Windows
- Начало работы с OpenCV Intel® INDE для целевых устройств Android
- Профилирование приложений OpenCV Intel® INDE
- Ориентировочная производительность OpenCV* 3.0 и OpenCV Intel® INDE
- Руководство по архитектуре OpenCV* 3.0 для OpenCV Intel® INDE
- OpenCV Intel® INDE — работа с API Dispatcher
- OpenCV Intel® INDE — бета-версия
- OpenCV Intel® INDE — сведения о бета-версии
- Форум по OpenCV* Intel®
- Справка по подключаемому модулю Image Watch
krox
А под QT подобное есть?