select

Выберите подмножество сообщений для чтения из файла Ibeo Data Container (IDC)

Описание

Использовать select объект для задания подмножества сообщений для чтения из файла IDC на основе типа сообщения, идентификатора сообщения или идентификатора устройства. select метод возвращает ibeoMessageReader объект, который может использоваться для чтения выбранных сообщений из файла IDC. Ниже перечислены поддерживаемые значения типа сообщения и идентификатора сообщения. Для чтения требуется лицензия Lidar Toolbox™ scan и pointCloudPlane сообщений.

Тип сообщения Идентификатор сообщенияIbeo® Имя типа данных
'scan''0x2205' Данные сканы IBEO FUSION SYSTEM/ECU
'pointCloudPlane''0x7510'Плоскость облака точек Ibeo
'image''0x2403'Изображение СИСТЕМЫ FUSION IBEO/установки пиролиза
'object''0x2281'Данные объекта Ibeo FUSION SYSTEM/ECU
'vehicleState''0x2808'Состояние транспортного средства IBEO FUSION SYSTEM/ECU
'measurementList''0x2821'Измерительные списки IBEO FUSION SYSTEM/ECU
'CAN''0x1002'Сообщения Ibeo FUSION SYSTEM/ECU CAN

пример

msgReader = select(ibeoReader,msgType) создает ibeoMessageReader объект, msgReader, который может считать все сообщения типа, msgType, присутствует в ibeoFileReader объект, ibeoReader.

msgReader = select(ibeoReader,msgID) создает ibeoMessageReader объект, msgReader. который может считать все сообщения с идентификатором, msgID, присутствует в ibeoFileReader объект.

msgReader = select(___,timeRange) задает временную область значений, в течение которого ibeoMessageReader объект может считать сообщения, в дополнение к любой комбинации аргументов из предыдущих синтаксисов.

msgReader = select(___,'DeviceID',deviceID) задает идентификатор устройства, соответствующий которому ibeoMessageReader объект может считать сообщения, в дополнение к любой комбинации аргументов из предыдущих синтаксисов.

Примеры

свернуть все

Создайте ibeoFileReader объект, ibeoReader, для чтения заголовков сообщений из файла IDC. Замените аргумент заполнителя sample_data.idc с именем вашего файла IDC следующим sample_data.idc файл не поставляется вместе с тулбоксом.

ibeoReader = ibeoFileReader('sample_data.idc')
ibeoReader =
 
  ibeoFileReader with properties:
 
       FileName: "C:/Documents/MATLAB/ibeo_data/sample_data.idc"
      StartTime: 15-Mar-2020 11:21:04.999434999
        EndTime: 15-Mar-2020 11:25:35.030095000
       Duration: 00:04:30
    FileSummary: CAN             53    msgs [0x1002]
                 scan            53    msgs [0x2205]
                 object          106   msgs [0x2281]
                 image           53    msgs [0x2403]
                 vehicleState    53    msgs [0x2808]
                 measurementList 53    msgs [0x2821]
                 pointCloudPlane 53    msgs [0x7510]
                 unsupported     53    msgs [0x6120]
                 unsupported     53    msgs [0x6970]

Создайте два ibeoMessageReader объекты, imgReader и objReader, для чтения всех изображений и сообщений об обнаружении объектов в первые 2 минут, соответственно, при помощи select функция с соответствующим типом сообщения и значениями временной области значений.

timeRange = [0 minutes(2)];
imgReader = select(ibeoReader,'image',timeRange);
objReader = select(ibeoReader,'object',timeRange);

Считайте первые 10 изображения и все сообщения об обнаружении объектов за первые 2 минуты при помощи readMessages функция на соответствующем ibeoMessageReader объекты с соответствующими indices и timeRange аргументы. Чтение сообщений обнаружения объектов возвращает как интерактивные объекты, так и постпроцессированные объекты вместе с их метаданными.

imgs = readMessages(imgReader,1:10);
[rawObjs,procObjs,rawMetadata,procMetadata] = readMessages(objReader);

Создайте ibeoFileReader объект, ibeoReader, для чтения заголовков сообщений из файла IDC. Замените аргумент заполнителя sample_data.idc с именем вашего файла IDC следующим sample_data.idc файл не поставляется вместе с тулбоксом.

ibeoReader = ibeoFileReader('sample_data.idc')
ibeoReader =
 
  ibeoFileReader with properties:
 
       FileName: "C:/Documents/MATLAB/ibeo_data/sample_data.idc"
      StartTime: 15-Mar-2020 11:21:04.999434999
        EndTime: 15-Mar-2020 11:25:35.030095000
       Duration: 00:04:30
    FileSummary: CAN             53    msgs [0x1002]
                 scan            53    msgs [0x2205]
                 object          106   msgs [0x2281]
                 image           53    msgs [0x2403]
                 vehicleState    53    msgs [0x2808]
                 measurementList 53    msgs [0x2821]
                 pointCloudPlane 53    msgs [0x7510]
                 unsupported     53    msgs [0x6120]
                 unsupported     53    msgs [0x6970]

Создайте ibeoMessageReader объект, imgReader, чтобы считать все изображения в первые 2 минут, с помощью select функция с соответствующим типом сообщения и значениями временной области значений.

timeRange = [0, minutes(2)];
imgReader = select(ibeoReader, 'image', timeRange);

Визуализируйте данные сообщения путем чтения сообщений по одному на объект видеоплеера. Во-первых, создайте vision.VideoPlayer объект. Затем используйте hasNextMessage функция, чтобы проверить, imgReader ли содержит сообщение после текущего. Если это так, используйте readNextMessage функция для чтения изображений в рабочую область.

videoPlayer = vision.VideoPlayer;
while hasNextMessage(imgReader)
    img = readNextMessage(imgReader);
    step(videoPlayer,img);
end
release(videoPlayer);
     

Сбросьте ibeoMessageReader объект, imgReader, к первому сообщению в выборе, используя reset функция.

 reset(imgReader);

Входные параметры

свернуть все

ibeoFileReader объект, соответствующий считываемому файлу IDC.

Тип сообщения для чтения из файла IDC в виде строкового скаляра или вектора символов. Конкретные msgType значения соответствуют типам данных Ibeo, как показано в таблице.

Идентификатор сообщения типа сообщения, считываемого из файла IDC, задается как строковый скаляр или вектор символов. Конкретные msgID значения соответствуют типам данных Ibeo, как показано в таблице.

Временная область значений, в котором можно считать сообщения, заданный как вектор длительности или datetime формы [startTime endTime]. Если timeRange - вектор длительности, startTime и endTime относятся ко времени запуска, заданному StartTime свойство ibeoReader.

Идентификаторы устройств считываемых сообщений, заданные как скаляр или вектор неотрицательных целых чисел. Список идентификаторов устройств, которые можно выбрать, см. в DeviceID столбец таблицы, хранящийся в FileSummary свойство ibeoReader.

Выходные аргументы

свернуть все

Устройство чтения сообщений, возвращенное как ibeoMessageReader объект. Этот объект считывает выбранные сообщения из файла IDC.

Введенный в R2021a