ibeoMessageReader

Объект для чтения содержимого сообщения из файла IBEO Data Container (IDC)

Описание

The ibeoMessageReader объект является индексированным выбором сообщений в Ibeo® Файл IDC. Используйте этот объект для чтения содержимого сообщения из файла IDC. Каждый ibeoMessageReader объект содержит содержимое только для сообщений выбранного типа из ibeoFileReader объект.

Создание

Как создать ibeoMessageReader объект, использовать select функция объекта ibeoFileReader объект.

ibeoReader = ibeoFileReader('sample_data.idc');
msgReader = select(ibeoReader,'image');

Свойства

расширить все

Это свойство доступно только для чтения.

Абсолютный путь к файлу IDC, заданный как строковый скаляр.

Это свойство доступно только для чтения.

Временная метка первого сообщения, заданная как скаляр datetime.

Это свойство доступно только для чтения.

Временная метка последнего сообщения, заданная как скаляр datetime.

Временная метка текущего сообщения, заданная как скаляр datetime.

Это свойство доступно только для чтения.

Метки времени всех сообщений, заданные как N-на-1 вектор datetime. N - количество сообщений в выделенной области.

Это свойство доступно только для чтения.

Общая длительность выбора, заданная как скаляр длительности в секундах.

Это свойство доступно только для чтения.

Выбранный тип сообщения, заданный как строковый скаляр.

Это свойство доступно только для чтения.

Количество сообщений в выделенной области в виде неотрицательного целого числа.

Это свойство доступно только для чтения.

Идентификаторы устройств, сопоставленных с выбором, заданные как вектор неотрицательных целых чисел.

Функции объекта

readMessagesЧтение сообщений из выбора файла Ibeo Data Container (IDC)
readNextMessageСчитайте следующее сообщение из выбора файла IBEO Data Container (IDC)
hasNextMessageПроверьте, есть ли следующее сообщение о выборе файла Ibeo Data Container (IDC)
resetСброс к первому сообщению в выборе файла Ibeo Data Container (IDC)

Примеры

свернуть все

Создайте 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);

Совет

  • Если на MessageType значение свойства 'object', и если файл IDC содержит как интерактивные объекты, так и постпроцессированные объекты, StartTime, EndTime, CurrentTime, Timestamps, Duration, и NumMessages свойства определяются только сообщениями оперативного объекта.

  • Если на MessageType значение 'object'и файл IDC содержит только постпроцессированные сообщения, Timestamps свойство соответствует времени поствремени вычислений, а не времени набора данных. В целях синхронизации используйте MidScanTimeStamp поле из метаданных объекта, возвращенных readMessages или readNextMessage функция объекта.

Введенный в R2021a