Чертите различные формы при помощи кода OpenCV в Simulink

В этом примере показано, как чертить различные формы на изображениях.

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

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

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

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

Необходимые продукты

  • Интерфейс Computer Vision Toolbox™ для OpenCV в Simulink

  • Computer Vision Toolbox

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

Чтобы создать библиотеки OpenCV, идентифицируйте совместимый компилятор C++ для своей операционной системы, как описано в Компиляторе, Используемом, чтобы Создать Библиотеки OpenCV. Сконфигурируйте идентифицированный компилятор при помощи mex -setup c++ команда. Для получения дополнительной информации смотрите, Выбирают C ++ Compiler.

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

Эти модели 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 File. Вывод затем отображен на блоке Video Viewer.

Скопируйте папку в качестве примера в перезаписываемое местоположение

Получить доступ к пути к папке в качестве примера, в командной строке MATLAB®, введите:

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

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

Шаг 1: импортируйте функцию OpenCV, чтобы создать библиотеку Simulink

  1. Чтобы запустить приложение OpenCV Importer, нажмите Apps на Панели инструментов MATLAB. Мастер импорта OpenCV открывается к Странице приветствия. Задайте Project name как DrawCircle. Убедитесь, что название проекта не содержит пробелов. Нажмите Next.

  2. В Задают Библиотеку OpenCV, задают это расположение файлов, и затем нажимают Next.

    • Project root folder: Задайте путь своей папки в качестве примера. Этот путь является путем к перезаписываемой папке проекта, где вы сохранили свои файлы в качестве примера. Все ваши выходные файлы сохранены в эту папку.

    • Source files: Задайте путь .cpp файл расположен в вашей папке проекта как opencvcode.cpp.

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

  3. Анализируйте свою библиотеку, чтобы искать функции и типы для импорта. Если анализ завершен, нажмите Next. От перечисленных функций выберите drawFilledCircle функционируйте и нажмите Next.

  4. Из того, что импортировать, выберите I/O Type for img как InputOutput и другие аргументы как Input. Нажмите Next.

  5. В Создают Библиотеку Simulink, проверяют значения по умолчанию типов OpenCV. По умолчанию Create a single C-caller block for the OpenCV function выбран, чтобы создать блок C Caller с подсистемой. Чтобы создать Библиотеку Simulink, нажмите Next.

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

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

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

  1. В вашем Current Folder MATLAB щелкните правой кнопкой по модели DrawFilledCircle.slx и нажмите Open из контекстного меню. Перетащите сгенерированную подсистему к модели и соедините блоки.

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

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

Чертите Atom на изображении при помощи блока вызывающей стороны C

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

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

  2. Если вы импортируете функции, DrawCircle_Lib библиотека создается. Эта Библиотека Simulink содержит подсистемы и блоки Вызывающей стороны C, требуемые чертить атом на изображении.

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

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

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

Смотрите также

|

Похожие темы