为对象检测生成的代码
这个例子展示了如何使用MATLAB®编码器生成C代码从MATLAB™使用图像处理工具箱™的应用程序功能。示例描述了如何设置您的MATLAB环境和MATLAB代码准备代码生成。
这个示例还演示了如何解决问题,你可能会遇到MATLAB代码,防止代码生成。为了说明这个过程,本例中使用的代码包含了一些准备问题和构建问题之前,你必须克服你可以生成代码。
设置编译器
指定您想要使用C / c++编译器生成代码通过使用MATLAB编码器墨西哥人
函数与设置
选择。
墨西哥人设置
定义入口点函数
的入口点函数是一个MATLAB函数作为代码生成的源代码。首先,原型图像处理工作流不支持代码生成。金宝app这个例子定义了一个函数调用detectCells.m
使用分割和形态学技术执行细胞检测。这个函数是附加到例子作为支持文件。金宝app
测试样本图像的示例代码,cell.tif
。
我= imread (“cell.tif”);Iseg = detectCells(我);
确定分割的准确性通过叠加在原始图像分割图像。
Iseg imshow (labeloverlay(我))
因为你修改这个代码生成代码,最好使用代码的副本。这个例子包含helper函数的一个副本detectCells.m
命名detectCellsCodeGen.m
。函数用于生成代码的版本包括了MATLAB编码器编译指令% # codegen
最后的函数签名。这个指令指示MATLAB代码分析器来诊断问题禁止成功的代码生成。
打开MATLAB编码器应用程序使用编码器
函数。(或者,在MATLAB中,选择应用程序选项卡中,导航到代码生成并单击MATLAB编码器的应用。)
编码器
指定入口点函数的名称,detectCellsCodeGen
,按输入。
确定代码准备代码生成
点击下一个。MATLAB编码器识别任何可能阻止代码生成的问题。示例代码包含五个不支持的函数调用。金宝app
复习准备问题。点击审查问题。在报告中,MATLAB代码编码显示在编辑窗口下面列出的准备问题,萎靡不振的使用的imshow
函数不支持代码生成。金宝app
正确的准备问题
解决准备问题。删除调用imshow
从你的例子和相关显示代码。显示语句不需要分割操作。您可以编辑示例代码直接在MATLAB编码器。当你已经删除了代码,点击保存保存您的编辑和重新运行准备检查。重新运行准备检查后,MATLAB编码器显示没有发现问题消息。
定义函数输入的大小和数据类型
每个输入代码必须指定固定尺寸,变量大小或一个常数。有几种方法可以指定输入参数的大小,但最简单的方法是通过给MATLAB编码器调用你的函数的一个例子。输入一个脚本,该脚本调用你的函数在文本输入字段。对于这个示例,在MATLAB中输入以下代码提示和新闻Autodefine输入类型。
我= imread (“cell.tif”);Iseg = detectCellsCodeGen(我);
有关定义输入的更多信息,请参见MATLAB编码器文档。与输入类型定义MATLAB编码器返回后,点击下一个。
检查和解决运行问题
即使你进行MATLAB编码器准备检查,额外的问题可能出现在构建过程中,可以防止代码生成。虽然准备检查看看函数依赖关系来确定准备,构建过程检查编码模式。您可以使用相同的代码输入定义输入类型(预加载到对话框)。点击检查问题。
这个例子包含构建问题:它通过一个数组strel
对象imdilate
和数组的对象不支持代码生成。金宝app
解决构建问题。对于这个示例,修改调用imdilate
避免传递的数组strel
对象。取代单一调用imdilate
有两个单独的调用imdilate
你与每个调用通过一个strel对象。
重新运行测试构建固定问题,以确保您的更改。点击检查问题。MATLAB编码器显示一条消息称未发现问题。
生成代码
现在可以生成代码。点击下一个。
选择你想要的类型的代码生成和选择目标平台。MATLAB编码器可以生成C或c++源代码,一个墨西哥人文件,一个静态库,一个共享库,或一个独立的可执行文件。生产硬件,您可以选择从许多的选择包括手臂和英特尔处理器。
这个示例使用默认选项。源代码和构建类型的语言C。对于设备选项,指定设备供应商和通用设备MATLAB主机设备类型。当你选择MATLAB主机,MATLAB编码器生成取决于预编译的代码共享库。图像处理工具箱函数使用一个共享库保存性能优化。
点击生成。
MATLAB编码器显示生成的代码。
点击下一个完成这个过程。MATLAB编码器显示信息生成。默认情况下,MATLAB程序员创建一个codegen
子文件夹在你的工作文件夹,其中包含生成的输出。
另请参阅
codegen
(MATLAB编码器)|MATLAB编码器(MATLAB编码器)
相关的话题
- 图像处理代码生成
- 代码生成工作流(MATLAB编码器)
- 通过使用MATLAB编码器应用生成C代码(MATLAB编码器)
- 输入类型规范代码生成(MATLAB编码器)
- 函数支持代码生成金宝app