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

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

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

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

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

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

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

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

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

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

     OpenCVSimulinkExamples;

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

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

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

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

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

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

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

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

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

4. Из того, что импортировать, выберите I/O Type для img как InputOutput, и другой arguements как Input.Click Затем.

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

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

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

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

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

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

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

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

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

1. Импортируйте drawEllipse и drawFilledCircle OpenCV функционирует в Simulink при помощи Мастера Импорта OpenCV Кода. Во время импорта выберите I/O Type для 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 отображает атом на белом входном изображении.

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

|

Похожие темы