readNextMessage

Считайте следующее сообщение из выбора файла IBEO Data Container (IDC)

Описание

пример

msg = readNextMessage(msgReader) считывает следующее сообщение из выбора сообщений, доступных в ibeoMessageReader объект, msgReader. По умолчанию, readNextMessage начинает считывать с первого сообщения в выборе и считывает последующие сообщения во время последовательных вызовов, вплоть до последнего доступного сообщения. Чтобы сбросить чтение назад к первому сообщению, используйте reset метод на ibeoMessageReader объект. Если на MessageType свойство msgReader является 'object', этот синтаксис возвращает следующий сетевой объект сообщение.

[msg,metadata] = readNextMessage(msgReader) возвращает метаданные, сопоставленные с выбранным сообщением. Если MessageType свойство msgReader является 'object', тогда этот синтаксис не применяется.

[rawMsg,procMsg] = readNextMessage(msgReader) возвращает следующее оперативное сообщение об обнаружении объектов, rawMsg, и постпроцессированное сообщение обнаружения объектов, procMsg, в выделенной области. Чтобы использовать этот синтаксис, MessageType свойство msgReader должен быть 'object'.

[rawMsg,procMsg,rawMetadata,procMetadata] = readNextMessage(msgReader) возвращает метаданные, связанные с, rawMsg и procMsg. Чтобы использовать этот синтаксис, MessageType свойство msgReader должен быть 'object'.

[___] = readNextMessage(msgReader,'DeviceID',deviceID) считывает следующее сообщение из выбора сообщений, которые соответствуют указанному устройству deviceID.

Примеры

свернуть все

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

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

свернуть все

Устройство чтения сообщений, заданное как ibeoMessageReader объект.

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

свернуть все

Сообщение, считанное из файла IDC, возвращенное как структура, pointCloud или массив, определяемый MessageType свойство msgReader. Для получения дополнительной информации смотрите Структуру данных Ibeo Message и Метаданные.

Метаданные сообщения, возвращенные как структура. Поля каждой структуры определяются MessageType свойство msgReader. Для получения дополнительной информации смотрите Структуру данных Ibeo Message и Метаданные.

Оперативное сообщение об обнаружении объектов, возвращенное как массив структур. Чтобы вернуть этот аргумент, MessageType свойство msgReader должен быть 'object'. Для получения дополнительной информации смотрите Структуру данных Ibeo Message и Метаданные.

Постпроцессированное сообщение обнаружения объектов, возвращенное как массив структур. Чтобы вернуть этот аргумент, MessageType свойство msgReader должен быть 'object'. Для получения дополнительной информации смотрите Структуру данных Ibeo Message и Метаданные.

Метаданные оперативного сообщения об обнаружении объектов, возвращенные как структура. Чтобы вернуть этот аргумент, MessageType свойство msgReader должен быть 'object'. Для получения дополнительной информации смотрите Структуру данных Ibeo Message и Метаданные.

Метаданные сообщения обнаружения постпроцессированных объектов, procMsg, возвращается как структура. Чтобы вернуть этот аргумент, MessageType свойство msgReader должен быть 'object'. Для получения дополнительной информации смотрите Структуру данных Ibeo Message и Метаданные.

Подробнее о

свернуть все

Структура данных сообщения Ibeo и метаданных

Следующие вызовы функций иллюстрируют использование readNextMessage функция для чтения одного сообщения и связанных с ним метаданных из файла IDC с помощью ibeoMessageReader объект.

  • [msg, metadata] = readNextMessage(msgReader)

  • [rawMsg, procMsg, rawMetadata, procMetadata] = readNextMessage(msgReader)

В этой таблице выделены формат и структура данных сообщения и метаданных, возвращенных этой функцией, на основе типа сообщения ibeoMessageReader объект.

Тип сообщенияФормат сообщения [msg, rawMsg, procMsg]Формат метаданных [метаданные, необработанные метаданные, procMetadata]
Скан

pointCloud

ScanMetaDataStruct

PointCloudPlane

pointCloud

PointCloudPlaneMetaDataStruct

Изображение

H -by- W -by-3, где H и W являются высотой и шириной изображения.

Объект ImageMetaDataStruct

Объект

И интерактивные объекты, и постобработанные объекты имеют одинаковую структуру.

M массив структур -by-1 ObjectStruct, где M количество обнаружений объектов

ObjectMetaDataStruct

VehicleState

VehicleStateStruct

VehicleStateMetaDataStruct

MeasurementList

M -by-1 массив структур MeasurementStruct, где M - количество измерений

MeasurementMetaDataStruct

МОЖЕТ

CANStruct

CANMetaDataStruct

Введенный в R2021a