В этом примере показано, как обнаруживать тени в записанном видео с помощью OpenCV Importer.
Сначала импортируйте функцию OpenCV в Simulink ® с помощью интерфейса Install and Use Computer Vision Toolbox Interface for OpenCV в Simulink. Мастер создает библиотеку Simulink, содержащую подсистему и блок Caller C для указанной функции OpenCV. Подсистема затем используется в предварительно сконфигурированной модели Simulink, чтобы принять записанное видео и пороговое значение для обнаружения тени. Обнаружение тени работает в соответствии с пороговым значением. Пороговое значение можно изменить с помощью компонента ползунка, доступного в модели.
Вы научитесь:
Импорт функции OpenCV в библиотеку Simulink.
Используйте блоки из созданной библиотеки в модели Simulink.
Чтобы создать библиотеки 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 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 используется.
Использование сгенерированной подсистемы subsystem_slwrap_run_shadow_detection с моделью Simulink ShadowDetection.slx:
1. В текущей папке MATLAB щелкните модель правой кнопкой мыши. ShadowDetection.slx и нажмите Open в контекстном меню. Перетащите созданную подсистему subsystem_slwrap_detectAndDraw к модели. Подключите подсистему к функциональному блоку MATLAB.
2. Дважды щелкните подсистему и укажите значения этих параметров.

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