exponenta event banner

Обнаружение теней с помощью кода OpenCV в Simulink

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

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

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

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

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

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

Чтобы создать библиотеки OpenCV, определите совместимый компилятор C++ для вашей операционной системы, как описано в документе Portable C Code Generation for Functions That Use OpenCV Library. Настройте указанный компилятор с помощью команды mex -setup c++. Дополнительные сведения см. в разделе Выбор компилятора C++.

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

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

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

Копирование папки-примера в доступное для записи расположение

Для доступа к пути к папке примера в командной строке MATLAB ® введите:

     OpenCVSimulinkExamples;

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

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

Шаг 1: Импорт функции OpenCV для создания библиотеки Simulink

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

2. В разделе «Укажите библиотеку OpenCV» укажите эти расположения файлов и нажмите кнопку «Далее».

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

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

  • Включить файлы: Укажите путь к .hpp верхний колонтитул, расположенный в папке проекта как shadow_detection.hpp.

3. Проанализируйте библиотеку, чтобы найти функции и типы для импорта. После завершения анализа нажмите кнопку Далее (Next). Выберите run_shadow_detection и нажмите кнопку Далее.

4. В поле «Что импортировать» выберите I/O Type для inImage и thresh как Input, outImage как вывод и нажмите кнопку Далее.

5. В окне «Создание библиотеки Simulink» проверьте значения по умолчанию и нажмите кнопку «Далее».

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

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

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

1. В текущей папке MATLAB щелкните модель правой кнопкой мыши. ShadowDetection.slx и нажмите Open в контекстном меню. Перетащите созданную подсистему subsystem_slwrap_detectAndDraw к модели. Подключите подсистему к функциональному блоку MATLAB.

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

3. Нажмите кнопку Применить, а затем кнопку ОК.

Шаг 3: Моделирование теневого детектора

На панели инструментов «Симуляция» на вкладке «Моделирование» щелкните на значке моделирования модели. После завершения моделирования блок Video Viewer отображает видео с тенями, отмеченными красным контуром в зависимости от порогового значения. Для отображаемого примера видео пороговое значение устанавливается равным 0.0651.

См. также

|

Связанные темы