主要内容

为对象检测生成的代码

这个例子展示了如何使用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,按输入

coder_1_specifyFunction.png

确定代码准备代码生成

点击下一个。MATLAB编码器识别任何可能阻止代码生成的问题。示例代码包含五个不支持的函数调用。金宝app

coder_2_readinessReport.png

复习准备问题。点击审查问题。在报告中,MATLAB代码编码显示在编辑窗口下面列出的准备问题,萎靡不振的使用的imshow函数不支持代码生成。金宝app

coder_3_readinessSpecifics.png

正确的准备问题

解决准备问题。删除调用imshow从你的例子和相关显示代码。显示语句不需要分割操作。您可以编辑示例代码直接在MATLAB编码器。当你已经删除了代码,点击保存保存您的编辑和重新运行准备检查。重新运行准备检查后,MATLAB编码器显示没有发现问题消息。

coder_4_updatedCode.png

定义函数输入的大小和数据类型

每个输入代码必须指定固定尺寸,变量大小或一个常数。有几种方法可以指定输入参数的大小,但最简单的方法是通过给MATLAB编码器调用你的函数的一个例子。输入一个脚本,该脚本调用你的函数在文本输入字段。对于这个示例,在MATLAB中输入以下代码提示和新闻Autodefine输入类型

我= imread (“cell.tif”);Iseg = detectCellsCodeGen(我);

有关定义输入的更多信息,请参见MATLAB编码器文档。与输入类型定义MATLAB编码器返回后,点击下一个

coder_6_inputDataTypesAutodefined.png

检查和解决运行问题

即使你进行MATLAB编码器准备检查,额外的问题可能出现在构建过程中,可以防止代码生成。虽然准备检查看看函数依赖关系来确定准备,构建过程检查编码模式。您可以使用相同的代码输入定义输入类型(预加载到对话框)。点击检查问题

coder_7_checkForRunTimeIssues.png

这个例子包含构建问题:它通过一个数组strel对象imdilate和数组的对象不支持代码生成。金宝app

coder_8_specificRunTimeIssue.png

解决构建问题。对于这个示例,修改调用imdilate避免传递的数组strel对象。取代单一调用imdilate有两个单独的调用imdilate你与每个调用通过一个strel对象。

coder_9_fixedRunTimeIssue.png

重新运行测试构建固定问题,以确保您的更改。点击检查问题。MATLAB编码器显示一条消息称未发现问题。

coder_10_noIssuesFound.png

生成代码

现在可以生成代码。点击下一个

选择你想要的类型的代码生成和选择目标平台。MATLAB编码器可以生成C或c++源代码,一个墨西哥人文件,一个静态库,一个共享库,或一个独立的可执行文件。生产硬件,您可以选择从许多的选择包括手臂和英特尔处理器。

这个示例使用默认选项。源代码和构建类型的语言C。对于设备选项,指定设备供应商和通用设备MATLAB主机设备类型。当你选择MATLAB主机,MATLAB编码器生成取决于预编译的代码共享库。图像处理工具箱函数使用一个共享库保存性能优化。

点击生成

coder_11_specifyCodeGenPlatform.png

MATLAB编码器显示生成的代码。

点击下一个完成这个过程。MATLAB编码器显示信息生成。默认情况下,MATLAB程序员创建一个codegen子文件夹在你的工作文件夹,其中包含生成的输出。

另请参阅

(MATLAB编码器)|(MATLAB编码器)

相关的话题