Теневое обнаружение при помощи кода OpenCV в Simulink

В этом примере показано, как обнаружить тени в записанном видео при помощи приложения Средства импорта OpenCV.

Сначала импортируйте функцию OpenCV в Simulink® следующим Установка и Использование Интерфейс Computer Vision Toolbox для OpenCV в Simulink. Мастер создает Библиотеку Simulink, которая содержит подсистему и блок C Caller для заданной функции OpenCV. Подсистема затем используется в предварительно сконфигурированной модели Simulink, чтобы принять записанное видео и пороговое значение для теневого обнаружения. Теневое обнаружение работает на пороговое значение. Пороговое значение может быть изменено с помощью компонента ползунка, доступного в модели.

Вы учитесь как:

  • Импортируйте функцию OpenCV в Библиотеку Simulink.

  • Используйте блоки из сгенерированной библиотеки в модели Simulink.

Настройте свой компилятор C++

Чтобы создать библиотеки OpenCV, идентифицируйте совместимый компилятор C++ для своей операционной системы, как описано в Портативной генерации кода C для Функций, Которые Пользуются Библиотекой OpenCV. Сконфигурируйте идентифицированный компилятор при помощи mex -setup c++ команда. Для получения дополнительной информации смотрите, Выбирают C ++ Compiler.

Описание модели

В этом примере теневой детектор реализован при помощи модели Simulink ShadowDetection.slx.

В этой модели, subsystem_slwrap_run_shadow_detection подсистема находится в Shadow_Detection_Lib библиотека. Вы создаете subsystem_slwrap_run_shadow_detection подсистема при помощи приложения Средства импорта OpenCV. Подсистема принимает, что видео от блока From Multimedia File и порогового значения обнаруживает тень в видео. Вывод отображен с помощью блока Video Viewer. В subsystem_slwrap_run_shadow_detection подсистема, inImage входное изображение, thresh порог алгоритма и outImage выходное изображение. Пороговый ползунок используется, чтобы изменить пороговое значение во время симуляции.

Скопируйте папку в качестве примера в перезаписываемое местоположение

Получить доступ к пути к папке в качестве примера, в командной строке MATLAB®, введите:

     OpenCVSimulinkExamples;

Каждая подпапка содержит все вспомогательные файлы, требуемые запускать пример.

Перед продолжением этих шагов гарантируйте, что вы копируете папку в качестве примера в перезаписываемое местоположение папки и изменяете вашу текущую рабочую папку в ...example\ShadowDetection. Все ваши выходные файлы сохранены в эту папку.

Шаг 1: импортируйте функцию OpenCV, чтобы создать библиотеку Simulink

1. Чтобы запустить приложение Средства импорта OpenCV, нажмите Apps на Панели инструментов MATLAB. В Странице приветствия задайте Название проекта как Shadow_Detection. Убедитесь, что название проекта не содержит пробелов. Нажать Далее.

2. В Задают Библиотеку OpenCV, задают это расположение файлов, и затем нажимают Далее.

  • Корневая папка проекта: Задайте путь своей папки в качестве примера. Этот путь является путем к перезаписываемой папке проекта, где вы сохранили свои файлы в качестве примера. Все ваши выходные файлы сохранены в эту папку.

  • Исходные файлы: Задайте путь .cpp файл расположен в вашей папке проекта как shadow_detection.cpp.

  • Включение файлов: Задайте путь .hpp заголовочный файл расположен в вашей папке проекта как shadow_detection.hpp.

3. Анализируйте свою библиотеку, чтобы искать функции и типы для импорта. Если анализ завершен, нажать Далее. Выберите run_shadow_detection функционируйте и нажмите Далее.

4. Из того, что импортировать, выберите I/O Type for inImage и thresh как Input, outImage как Выход и затем нажимают Далее.

5. В Создают Библиотеку Simulink, конфигурируют значения по умолчанию типов OpenCV. По умолчанию Создайте один блок C-вызывающей-стороны для функции OpenCV, выбран, чтобы создать блок C Caller наряду с подсистемой в сгенерированной Библиотеке Simulink.

6. Выберите библиотеку Configure, чтобы использовать Simulink. ImageType сигнализирует, чтобы сконфигурировать сгенерированную подсистему библиотеки, чтобы использовать Simulink.ImageType сигналы.

7. Установите Формат Цвета по умолчанию Simlink. ImageType сигнализируют к RGB, который является форматом цвета по умолчанию изображения.

8. Установите размещение Массивов По умолчанию Simulink. ImageType сигнализируют к Column-major, который является размещением массивов по умолчанию изображения.

9. Чтобы создать Библиотеку Simulink, нажать Далее.

Библиотека Simulink Shadow_Detection_Lib создается из вашего кода OpenCV в корневую папку проекта. Библиотека содержит подсистему и блок C Caller. Можно использовать любой из этих блоков для симуляции модели. В этом примере, подсистема subsystem_slwrap_run_shadow_detection используется.

Шаг 2: используйте сгенерированную подсистему в модели Simulink

Использовать сгенерированную подсистему subsystem_slwrap_run_shadow_detection с моделью Simulink ShadowDetection.slx:

1. В вашей текущей папке MATLAB щелкните правой кнопкой по модели ShadowDetection.slx и нажмите Open из контекстного меню. Перетащите сгенерированную подсистему от библиотеки до модели. Вставьте подсистему между блоком From Multimedia File и блоком Constant и блоком Video Viewer.

2. Дважды кликните подсистему и сконфигурируйте эти значения параметров:

  • 'Строки' : 360

  • Столбцы: 640

  • Каналы: 3

  • Лежание в основе типа: uint8

3. Нажмите Apply, и затем нажмите ОК.

Шаг 3: симулируйте теневой детектор

На Панели инструментов Simulink, во вкладке Simulation, нажимают на Run, чтобы симулировать модель. После того, как симуляция завершена, блок Video Viewer отображает видео с тенями, отмеченными красной схемой в зависимости от порогового значения. Для отображенного видео в качестве примера пороговое значение установлено в 0.0651.

Смотрите также

| |

Похожие темы