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

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

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

Вы узнаете, как:

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

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

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

Чтобы создать библиотеки OpenCV, определите совместимый компилятор C++ для вашей операционной системы, как описано в Portable C Code Generation для функций, которые используют библиотеку OpenCV. Сконфигурируйте идентифицированный компилятор с помощью команды 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 координаты для центра окружности и радиус как вход в подсистему. Подсистема создает круг на вход изображении из блока Image From Файла. Затем выход отображается на блоке Video Viewer.

Копировать папку примера в расположение с возможностью записи

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

     OpenCVSimulinkExamples;

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

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

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

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

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

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

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

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

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

4. Из списка «Что импортировать» выберите I/O Type для img как InputOutput, и другие аргументы как Input.Click Следующий.

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

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

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

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

1. В текущей папке MATLAB щелкните правой кнопкой мыши модель DrawFilledCircle.slx и выберите команду Открыть из контекстного меню. Перетащите сгенерированную подсистему в модель и соедините подсистему с блоками MATLAB Function.

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

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

Рисуйте Атом на изображении при помощи блока C Caller

В этом примере показано, как использовать блок 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 Caller из библиотеки Simulink DrawCircle_Lib на drawEllipses подсистема в модели. Создайте три копии блока C Caller, а затем поместите эти блоки в четыре пустых положения внутри drawEllipses подсистема.

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

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

См. также

|

Похожие темы