从ROS MATLAB中读取图像消息

时间:2014-09-09 12:51:21

标签: image matlab ros subscribe

请问,有没有人知道如何从ROS读取图像信息到Matlab? 我已经收到消息并在调用message.getData()后得到一个org.jboss.netty.buffer.SlicedChannelBuffer对象。

但是我不知道如何提取数据并将其放在uint8矢量中。

任何帮助都将受到高度赞赏。 提前谢谢,

佩德罗

1 个答案:

答案 0 :(得分:1)

发现它! 只需使用org.jboss.netty.buffer.SlicedChannelBuffer对象附带的.array即可。 也就是说,对于640x640图像:

a = message.getData();
data = a.array;
I = typecast(data(a.arrayOffset+1:end), 'uint8');
I = cat(3, reshape(I(3:3:end),[640 640])', ...
    reshape(I(2:3:end),[640 640])', ...
    reshape(I(1:3:end),[640 640])'...
);

记得cat to uint8,因为array为你提供了一个int8数据类型。

见你