rosWriteImage

Запишите изображение MATLAB в сообщение ROS изображений

Описание

msgOut = rosWriteImage(msg,img) преобразует MATLAB® изображение, img, к структуре сообщения и хранилищам ROS совместимые данные изображения в структуре сообщения, msg. Сообщением должен быть 'sensor_msgs/Image' сообщение. 'sensor_msgs/CompressedImage' сообщения не поддерживаются. Функция не выполняет преобразования цветового пространства, таким образом, img введите потребности иметь кодирование, которое вы задаете в свойстве Encoding сообщения.

msgOut = rosWriteImage(msg,img,alpha) преобразует изображение MATLAB, img, к структуре сообщения. Если кодирование изображений поддерживает альфа-канал (rgba или bgra семейство), задайте этот альфа-канал в alpha. В качестве альтернативы входное изображение может сохранить альфа-канал как свой четвертый канал.

msgOut = rosWriteImage(___,"Encoding",encodingParam) задает кодирование сообщения изображений в качестве аргумента значения имени с помощью любого из предыдущих входных параметров. Если Encoding поле сообщения не установлено, используйте этот синтаксис, чтобы установить поле.

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

свернуть все

'sensor_msgs/Image' Изображение ROS обменивается сообщениями в виде Image структура.

Отобразите в виде матрицы, представляющей шкалу полутонов или изображение RGB или как m-by-n-by-3 массив, в зависимости от изображения датчика.

Альфа-канал в виде uint8 полутоновое изображение. Альфа должна быть одного размера и тип данных с img.

Кодирование изображения обменивается сообщениями в виде строкового скаляра. Используя этот входной параметр перезаписывает Encoding поле входа msg. Для получения дополнительной информации смотрите, что Изображение ROS Кодирует.

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

свернуть все

'sensor_msgs/Image' Изображение ROS обменивается сообщениями в виде Image структура. 'sensor_msgs/Image' сообщения изображений не поддерживаются.

Можно использовать ту же переменную для аргумента ввода и вывода, чтобы непосредственно присвоить существующему сообщению.

img = uint8(10*rand(128,128,3));
msg = rosmessage("sensor_msgs/Image","DataFormat","struct");
msg = rosWriteImage(msg,img,"Encoding","rgb8");

Советы

Необходимо задать правильное кодирование входного изображения в свойстве Encoding сообщения изображений. Если вы не задаете изображение, кодирующее прежде, чем вызвать функцию, кодировку по умолчанию, rgb8, используется (изображение RGB с 3 каналами с uint8 значениями). Функция не выполняет преобразования цветового пространства, таким образом, img введите потребности иметь кодирование, которое вы задаете в свойстве Encoding сообщения.

Все типы кодировки, поддержанные для rosReadImage также поддерживаются в этой функции. Для получения дополнительной информации о поддерживаемых типах кодировки и их представлениях в MATLAB, смотрите rosReadImage.

Закодированные Байером изображения (bayer_rggb8, bayer_bggr8, bayer_gbrg8, bayer_grbg8, и их 16-битные эквиваленты), должен быть дан как 8-битные или 16-битные одноканальные изображения, или они не кодируют.

Расширенные возможности

Смотрите также

|

Введенный в R2021a