在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_Lib
来drawEllipses
模型中的子系统。创建C Caller块的三个副本,然后将这些块放在控件中的四个空白位置drawEllipses
子系统。
在模型中,拖动slwrap_drawFilledCircle
来自Simulink库的C调用程序块DrawCircle_Lib
并将方块放在空白位置。
3.在Simulink工具条上的模拟选项卡,单击模拟模型按钮。模拟完成后,Video Viewer块将原子显示在白色输入图像上。