【发布时间】:2014-09-09 23:26:28
【问题描述】:
请问,有人知道如何将 ROS 中的图像信息读入 Matlab 吗? 我已经收到消息并在调用 message.getData() 后得到一个 org.jboss.netty.buffer.SlicedChannelBuffer 对象。
但是我不知道如何提取数据并将其放入 uint8 向量中。
任何帮助将不胜感激。 提前致谢,
佩德罗
【问题讨论】:
标签: image matlab ros subscribe
请问,有人知道如何将 ROS 中的图像信息读入 Matlab 吗? 我已经收到消息并在调用 message.getData() 后得到一个 org.jboss.netty.buffer.SlicedChannelBuffer 对象。
但是我不知道如何提取数据并将其放入 uint8 向量中。
任何帮助将不胜感激。 提前致谢,
佩德罗
【问题讨论】:
标签: image matlab ros subscribe
找到了! 只需使用 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 转换为 uint8,因为数组为您提供了 int8 数据类型。
再见
【讨论】: