如何将字节数组类型的双重形象吗?
11视图(30天)
显示旧的评论
我目前从事在线SfM和我需要发的图片从Android手机到Matlab。我设法发送字节的数据Matlab从Android通过TCP / IP套接字编程,但我不能把它转换成图像。我期望的图像将会保存在目录或如果可能的话直接被SfM管道所描述的这个链接:
结构运动从两种不同的观点
。我试图解码与java这里所描述的那样:
如何将一个细胞数组转换成一个图像?
,但它不工作。我得到了一个错误”结构内容参考non-struct数组对象。”在“高度= jimage.getHeight;”。你知道怎么解决这个问题?或者你知道如何在Matlab这样做正确吗?
这是代码:
t = tcpip (“0.0.0.0”,8889,“NetworkRole”,“服务器”);
集(t)“InputBufferSize”,3000000);
集(t)“超时”,30);
disp (“等待连接…”);
fopen (t);
而(1)
如果(t。BytesAvailable > 0)
disp (连接成功。);
rawData =从文件中读(t, t.BytesAvailable);
谁rawData;
jimage = javax.imageio.ImageIO.read (java.io.ByteArrayInputStream (rawData));
身高= jimage.getHeight;
宽度= jimage.getWidth;
像素=重塑(定型(jimage.getData.getDataStorage“uint8”),3、宽度、高度);
img =猫(3…
置(重塑(像素(3::),(宽度、高度))),…
置(重塑(像素(2::),(宽度、高度))),…
置(重塑(像素(1::),(宽度、高度))));
imshow (img);
结束
结束
文件关闭(t);
这是我得到的数据样本“谁rawData”:
大小:390964 x1
字节:3127712
类:双
0评论
答案(1)
沃尔特·罗伯森
2016年11月7日
试一试
rawData =从文件中读(t t.BytesAvailable‘* uint8‘);
4评论
沃尔特·罗伯森
2017年2月14日
如果你从图像数据的意思
//www.tianjin-qmedu.com/matlabcentral/answers/100155-how-can-i-convert-a-java-image-object-into-a-matlab-image-matrix
表明im2java
如果你的意思是你有一个数据流,然后在数据流到底是什么呢?例如它只是阅读的结果一个jpg流在串行端口和发送的字节数吗?