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

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

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

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

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

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

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

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

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

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

В этой модели, subsystem_slwrap_run_shadow_detection подсистема находится в Shadow_Detection_Lib library. Вы создаете 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 для inImage и thresh как Input, outImage как Выход и затем нажимают Далее.

5. В Создают Библиотеку 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 из контекстного меню. Перетащите сгенерированную подсистему subsystem_slwrap_detectAndDraw к модели. Соедините подсистему с блоком MATLAB function.

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

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

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

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

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

|

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте