在地面真理贴标机应用程序,您可以标记来自图像和点云数据源的信号。这些源包括视频、图像序列、点云序列和Velodyne®数据包捕获(PCAP)文件和数据包。要加载应用程序本机不支持的数据源,可以创建一个类将该源加载到应用程序中。万博1manbetx
此示例演示如何使用预定义的数据源类之一,该类将信号从数据源加载到地面真理贴标机应用程序:thevision.labeler.loading.PointCloudSequenceSource
类。应用程序使用此特定类从文件夹加载点云数据(PCD)或多边形(PLY)文件序列。
要开始,请打开vision.labeler.loading.PointCloudSequenceSource
班使用为此类描述的属性和方法帮助您编写自己的自定义类。
编辑vision.labeler.loading.PointCloudSequenceSource
这个地面真理贴标机应用程序仅在数据源类文件位于+视觉/+贴标机/+加载
MATLAB上的文件夹®搜索路径。
这个vision.labeler.loading.PointCloudSequenceSource
类和其他预定义的数据源类存储在此文件夹中。
草根\工具箱\视觉\视觉\+视觉\+贴标机\+加载
在这条道路上,,
是MATLAB文件夹的根目录。草根
将创建的数据源类保存到此文件夹中。或者,创建自己的数据源类+视觉/+贴标机/+加载
文件夹,将其添加到MATLAB搜索路径,然后将类保存到此文件夹。
数据源类必须从vision.labeler.loading.MultiSignalSource
类的类定义vision.labeler.loading.PointCloudSequenceSource
班
classdefPointCloudSequenceSource
将点云序列信号加载到地面真理贴标机app,app创建类的一个实例,即点云序列源
对象。在应用程序中标记此信号后,当导出标签时,导出的地面多路信号
对象存储此点云序列源
对象在其数据来源
所有物
定义数据源类时,替换点云序列源
使用自定义数据源类的名称。
数据源类必须定义这些抽象的常量属性。
名称
-指定数据源类型的字符串标量
描述
-描述类的字符串标量
在地面真理贴标机应用程序,从“添加/删除信号”对话框加载信号时名称
字符串作为选项显示在源类型参数。此图显示名称
字符串vision.labeler.loading.PointCloudSequenceSource
班
这个描述
字符串不会出现在对话框中。然而,两个名称
和描述
字符串作为只读属性存储在此类的实例中。
此代码显示名称
和所有物
字符串vision.labeler.loading.PointCloudSequenceSource
班
性质(常量)名称=“点云序列”描述=“点云序列读取器”终止
定义数据源类时,请定义名称
和描述
属性值以匹配自定义数据源的名称和说明。您还可以定义特定于加载数据源的任何其他私有属性。源的源特定属性vision.labeler.loading.PointCloudSequenceSource
类,但您可以在类文件中查看它们。
在数据源类中阿托巴奈尔
方法控制应用程序的“添加/删除信号”对话框中加载信号面板的显示。此面板是面板
通过使用uipanel
作用面板包含从数据源加载信号所需的参数和控件。
此图显示了的加载面板vision.labeler.loading.PointCloudSequenceSource
在教室里源类型列表,当您选择点云序列
,应用程序调用阿托巴奈尔
方法并加载点云序列的面板。
此代码显示阿托巴奈尔
方法vision.labeler.loading.PointCloudSequenceSource
班它使用计算位置
方法计算必须放置文本、按钮和参数等UI组件的位置值。这个添加组件
方法然后通过相应地添加UI组件来定义面板。有关这些方法的完整实现,请参阅vision.labeler.loading.PointCloudSequenceSource
班
作用自定义ADPANEL(此,面板)此。面板=面板;计算位置(本);添加组件(本);终止
在开发此方法或其他数据源方法时,可以使用静态方法装载面板检查器
预览自定义数据源的加载对话框的显示和功能。此方法不需要打开应用程序会话即可使用。例如,使用装载面板检查器
方法与vision.labeler.loading.PointCloudSequence
班
vision.labeler.loading.PointCloudSequenceSource.loadPanelChecker
在“添加/删除信号”对话框中,浏览信号后,设置必要的参数,然后单击添加源,应用程序会依次调用这两个方法。
getLoadPanelData
-获取输入到面板中的数据。
负载源
-将数据加载到应用程序中。
此图显示了这些方法与添加源使用加载点云序列信号时的按钮vision.labeler.loading.PointCloudSequenceSource
班
定义自定义数据源时,必须定义getLoadPanelData
方法,该方法返回这些输出。
源名称
-数据源的名称
源参数
-包含字段的结构,其中包含加载数据源所需的信息
此代码显示getLoadPanelData
方法vision.labeler.loading.PointCloudSequenceSource
此方法设置源名称
输入的名称文件夹名对话框的参数和源参数
到一个空的结构。如果时间标记参数设置为从工作空间
并加载了时间戳,然后应用程序用这些时间戳填充此结构。
作用[sourceName,sourceParams]=getLoadPanelData(此)sourceParams=struct();如果isUIFigureBased(this)sourceName=string(this.FolderPathBox.Value);其他的sourceName=string(this.FolderPathBox.string);终止终止
您还必须定义负载源
方法。此方法必须采用源名称
和源参数
从机场回来getLoadPanelData
方法作为输入。此方法还必须填充这些属性,这些属性存储在应用程序创建的数据源对象的实例中。
信号名
-数据源中每个信号的字符串标识符
信号类型
-一系列vision.labeler.loading.SignalType
定义数据源中每个信号类型的枚举
时间戳
-数据源中每个信号的时间戳向量或单元格数组
源名称
-数据源的名称
源参数
-包含字段的结构,其中包含加载数据源所需的信息
此代码显示负载源
方法vision.labeler.loading.PointCloudSequenceSource
此方法执行这些操作。
作用loadSource(此、sourceName、sourceParams)%加载文件分机={“.pcd”,“.ply”}; this.Pcds=fileDatastore(sourceName,“ReadFcn”,@pcread,“文件扩展名”,分机);%填充时间戳如果isempty(此时间戳)如果isfield(源参数,“时间戳”)setTimestamps(这是sourceParams.Timestamps);其他的this.Timestamp={seconds(0:1:numel(this.Pcds.Files)-1)};终止其他的如果~iscell(this.Timestamp)this.Timestamp={this.Timestamp};终止终止进口vision.internal.labeler.validation*CheckpointCloudSequenceandTimestamsAgreement(this.Pcds,this.Timestamp{1});%填充信号名称和类型[~,folderName,~]=fileparts(sourceName);this.SignalName=makeValidName(this,string(folderName),“点云序列”); this.SignalType=vision.labeler.loading.SignalType.PointCloud;this.SourceName=SourceName;this.SourceParams=SourceParams;终止
您必须定义的最后一个必需方法是读框
方法此方法从数据源中存储的信号中读取帧。每次导航到新帧时,应用程序都会调用此方法。中特定时间戳的索引时间戳
属性传递给此方法。
此代码显示读框
方法vision.labeler.loading.PointCloudSequenceSource
该方法使用pcread
作用
作用frame=readFrame(此、信号名、索引)如果~strcmpi(signalName,this.signalName)帧=[];其他的frame=pcread(this.Pcds.Files{index});终止终止
您还可以定义特定于加载数据源的任何其他私有属性vision.labeler.loading.PointCloudSequenceSource
类,但您可以在类文件中查看它们。
此示例演示了如何使用vision.labeler.loading.PointCloudSequenceSource
类来帮助您创建自己的自定义类。此表显示了可以用作自己类起点的数据源类的完整列表。
班 | 按类加载的数据源 | 查看类源代码的命令 |
---|---|---|
vision.labeler.loading.VideoSource |
视频文件 |
编辑vision.labeler.loading.VideoSource
|
vision.labeler.loading.ImageSequenceSource |
图像序列文件夹 |
编辑vision.labeler.loading.ImageSequenceSource
|
vision.labeler.loading.VelodyneLidarSource |
Velodyne数据包捕获(PCAP)文件 |
编辑vision.labeler.loading.VelodyneLidarSource
|
vision.labeler.loading.RosbagSource |
Rosbag文件 |
编辑vision.labeler.loading.RosbagSource
|
vision.labeler.loading.PointCloudSequenceSource |
点云序列文件夹 |
编辑vision.labeler.loading.PointCloudSequenceSource
|
vision.labeler.loading.CustomImageSource |
自定义图像格式 |
编辑vision.labeler.loading.CustomImageSource
|