【问题标题】:Read Image Message from in ROS MATLAB从 ROS MATLAB 中读取图像消息
【发布时间】:2014-09-09 23:26:28
【问题描述】:

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

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

任何帮助将不胜感激。 提前致谢,

佩德罗

【问题讨论】:

    标签: image matlab ros subscribe


    【解决方案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 转换为 uint8,因为数组为您提供了 int8 数据类型。

    再见

    【讨论】:

      猜你喜欢
      • 2019-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-11
      • 1970-01-01
      • 2013-03-12
      相关资源
      最近更新 更多