主要内容

在Simulink中使用OpenCV代码绘制不同的形状

这个例子展示了如何通过使用在图像上绘制不同的形状OpenCV进口国

首先将OpenCV函数导入Simulink®在Simulink中安装和使用OpenCV计算机视觉工具箱接口.该向导为指定的OpenCV函数创建一个包含子系统和C Caller块的Simulink库。然后在预配置的Simulink模型中使用子系统。这个子系统接受指定形状的坐标。然后在视频查看器中显示已定义的形状。

你将学习如何:

  • 导入OpenCV函数到Simulink库中。

  • 在Simulink模型中使用生成的库中的块。

设置你的c++编译器

要构建OpenCV库,请为您的操作系统确定兼容的c++编译器,如可移植的C代码生成函数使用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进口国.子系统接受x而且y圆心坐标和作为子系统输入的半径。子系统在image from File块的输入图像上创建一个圆。输出然后显示在视频查看器块上。

复制示例文件夹到可写位置

要访问示例文件夹的路径,在MATLAB®命令行中输入:

OpenCVSimulinkExamples;

每个子文件夹包含运行示例所需的所有支持文件。

在继续执行这些步骤之前,请确保将示例文件夹复制到可写文件夹位置,并将当前工作文件夹更改为…\ DrawShapes例子.所有的输出文件都保存在这个文件夹中。

步骤1:导入OpenCV函数创建Simulink库

1.开始OpenCV进口国应用程序,点击应用程序在MATLAB工具条上。OpenCV导入向导将打开一个欢迎页面。指定项目名称作为DrawCircle.确保项目名称不包含任何空格。点击下一个

2.在“指定OpenCV库”中指定这些文件位置,然后单击下一个

  • 项目根文件夹:指定示例文件夹的路径。此路径是保存示例文件的可写项目文件夹的路径。所有的输出文件都保存在这个文件夹中。

  • 源文件:指定文件的路径. cpp位于项目文件夹中的文件为opencvcode.cpp

  • 包含文件:指定文件的路径. hpp位于项目文件夹中的头文件为opencvcode.hpp

3.分析库以找到要导入的函数和类型。分析完成后,单击下一个.选择drawFilledCircle功能和单击下一个

4.从“要导入的内容”中选择I / O型img作为输入输出,和其他论点一样输入.Click下一个

5.在Create Simulink Library中,验证OpenCV类型的默认值。默认情况下,为OpenCV函数创建一个c调用块选择以与子系统一起创建C Caller块。

6.指定默认CV::Mat输出大小作为384512年,3

7.如需创建Simulink库,请单击下一个

一个Simulink库DrawCircle_Lib是由OpenCV代码创建的。您可以使用这些块中的任何一个进行模型模拟。在本例中,是子系统subsystem_slwrap_drawFilledCircle使用。

步骤2:在Simulink模型中使用生成的子系统

使用生成的子系统subsystem_slwrap_drawFilledCircle使用Simulink模型DrawFilledCircle.slx

1.在MATLAB中当前文件夹,右键单击模型DrawFilledCircle.slx并从上下文菜单中单击“打开”。将生成的子系统拖到模型中,并将子系统连接到MATLAB函数块。

2.双击子系统,验证参数值。

在Simulink工具条上的模拟选项卡,单击模拟模型按钮。模拟完成后,视频查看器块在输入图像上显示填充的圆圈peppers.png

使用C调用块在图像上绘制Atom

这个例子展示了如何在Simulink模型中使用C Caller块在图像上绘制原子。

1.进口drawEllipse而且drawFilledCircle的OpenCV函数导入SimulinkOpenCV进口国导入过程中,选择I / O型drawEllipse而且drawFilledCircle,如图所示。

2.导入函数后,DrawCircle_Lib库创建完成。这个Simulink库包含在图像上绘制原子所需的子系统和C Caller块。

打开模型DrawAtomCcaller.slx.拖动slwrap_drawEllipse来自Simulink库的C调用程序块DrawCircle_LibdrawEllipses模型中的子系统。创建C Caller块的三个副本,然后将这些块放在控件中的四个空白位置drawEllipses子系统。

在模型中,拖动slwrap_drawFilledCircle来自Simulink库的C调用程序块DrawCircle_Lib并将方块放在空白位置。

3.在Simulink工具条上的模拟选项卡,单击模拟模型按钮。模拟完成后,Video Viewer块将原子显示在白色输入图像上。

另请参阅

|

相关的话题

Baidu
map