exponenta event banner

Рисование различных фигур с помощью кода OpenCV в Simulink

В этом примере показано, как рисовать различные фигуры на изображениях с помощью OpenCV Importer.

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

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

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

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

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

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

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

Эти модели Simulink доступны в DrawShapes папка:

  • DrawAtom.slx

  • DrawEllipse.slx

  • DrawFilledCircle.slx

  • DrawLine.slx

  • DrawPolygon.slx

  • DrawRook.slx

В этом примере используется DrawFilledCircle.slx модель. В этой модели subsystem_slwrap_drawFilledCircle подсистема находится в DrawCircle_Lib библиотека. Вы создаете subsystem_slwrap_drawFilledCircle с помощью OpenCV Importer. Подсистема принимает x и y координаты центра окружности и радиуса в качестве входных данных подсистемы. Подсистема создает окружность на входном изображении из блока «Изображение из файла». Затем выходные данные отображаются в блоке Video Viewer.

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

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

     OpenCVSimulinkExamples;

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

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

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

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

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

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

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

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

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

4. В поле «Что импортировать» выберите I/O Type для img как InputOutputи другие аргументы в качестве Input.Нажмите кнопку Далее.

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

Библиотека Simulink DrawCircle_Lib создается на основе кода OpenCV. Любой из этих блоков можно использовать для моделирования модели. В этом примере подсистема subsystem_slwrap_drawFilledCircle используется.

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

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

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

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

На панели инструментов Simulink на вкладке Simulation нажмите кнопку моделирования модели. После завершения моделирования блок Video Viewer отображает закрашенный круг на входном изображении peppers.png.

Рисование атома на изображении с помощью блока вызывающего абонента C

В этом примере показано, как использовать блок C Caller в модели Simulink для рисования атома на изображении.

1. Импорт drawEllipse и drawFilledCircle OpenCV функционирует в Simulink с помощью мастера импорта кода OpenCV. Во время импорта выберите I/O Type для drawEllipse и drawFilledCircle, как показано на этом рисунке.

2. После импорта функций, DrawCircle_Lib создается библиотека. Эта библиотека Simulink содержит подсистемы и блоки C Caller, необходимые для рисования атома на изображении.

Открытие модели DrawAtomCcaller.slx. Перетащите элемент slwrap_drawEllipse Блок вызывающего абонента C из библиотеки Simulink DrawCircle_Lib кому drawEllipses подсистема в модели. Создайте три копии блока вызывающего абонента C, а затем поместите эти блоки в четыре пустые позиции внутри drawEllipses подсистема.

В модели перетащите slwrap_drawFilledCircle Блок вызывающего абонента C из библиотеки Simulink DrawCircle_Lib и поместите блок в пустое положение.

3. На панели инструментов Simulink на вкладке Simulation нажмите кнопку моделирования модели. После завершения моделирования блок Video Viewer отображает атом на белом входном изображении.

См. также

|

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