В этом примере показано, как нарисовать различные фигуры на изображениях с помощью OpenCV Importer.
Сначала импортируйте функцию OpenCV в Simulink ® с помощью интерфейса Install and Use Computer Vision Toolbox для OpenCV в Simulink. Мастер создает библиотеку Simulink, содержащую подсистему и блок C Caller для указанной функции OpenCV. Подсистема затем используется в предварительно сконфигурированной модели Simulink. Эта подсистема принимает координаты заданной формы. Заданная фигура затем отображается в Video Viewer.
Вы узнаете, как:
Импортируйте функцию OpenCV в библиотеку Simulink.
Используйте блоки из сгенерированной библиотеки в модели Simulink.
Чтобы создать библиотеки 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 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
используется.
Чтобы использовать сгенерированную подсистему subsystem_slwrap_drawFilledCircle
с моделью Simulink DrawFilledCircle.slx
:
1. В текущей папке MATLAB щелкните правой кнопкой мыши модель DrawFilledCircle.slx
и выберите команду Открыть из контекстного меню. Перетащите сгенерированную подсистему в модель и соедините подсистему с блоками MATLAB Function.
2. Дважды кликните подсистему и проверьте значения параметров.
На панели инструментов Simulink, на вкладке Simulation, нажмите на кнопку simulate модели. После завершения моделирования блок Video Viewer отображает заполненный круг на вход изображении peppers.png
.
В этом примере показано, как использовать блок 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 отображает атом на белом входном изображении.