2014-09-09 6 views
0

Пожалуйста, кто-нибудь знает, как читать изображение с ROS в Matlab? Я уже получаю сообщение и получаю объект org.jboss.netty.buffer.SlicedChannelBuffer после вызова message.getData().Прочтите сообщение с изображения в ROS MATLAB

Однако я не знаю, как извлечь данные и поместить их в вектор uint8.

Любая помощь будет высоко оценена. Спасибо заранее,

Педро

ответ

1

Нашел! Просто используйте .array, который поставляется с объектом org.jboss.netty.buffer.SlicedChannelBuffer. То есть для 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])'... 
); 

помнит, чтобы кошки Uint8 потому массив дает вам тип int8 данных.

См. Ya