В этом примере показано, как обнаружить тени в записанном видео при помощи приложения Средства импорта OpenCV.
Сначала импортируйте функцию OpenCV в Simulink® следующим Установка и Использование Интерфейс Computer Vision Toolbox для OpenCV в Simulink. Мастер создает Библиотеку Simulink, которая содержит подсистему и блок C Caller для заданной функции OpenCV. Подсистема затем используется в предварительно сконфигурированной модели Simulink, чтобы принять записанное видео и пороговое значение для теневого обнаружения. Теневое обнаружение работает на пороговое значение. Пороговое значение может быть изменено с помощью компонента ползунка, доступного в модели.
Вы учитесь как:
Импортируйте функцию OpenCV в Библиотеку Simulink.
Используйте блоки из сгенерированной библиотеки в модели Simulink.
Чтобы создать библиотеки 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, нажмите 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
используется.
Использовать сгенерированную подсистему 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, и затем нажмите ОК.
На Панели инструментов Simulink, во вкладке Simulation, нажимают на Run, чтобы симулировать модель. После того, как симуляция завершена, блок Video Viewer отображает видео с тенями, отмеченными красной схемой в зависимости от порогового значения. Для отображенного видео в качестве примера пороговое значение установлено в 0.0651
.
ToOpenCV | FromOpenCV | Simulink.ImageType