Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Matlab中将Java Android中的双字节数组类型转换为图像?_Java_Android_Image_Matlab_Sockets - Fatal编程技术网

如何在Matlab中将Java Android中的双字节数组类型转换为图像?

如何在Matlab中将Java Android中的双字节数组类型转换为图像?,java,android,image,matlab,sockets,Java,Android,Image,Matlab,Sockets,我目前正在进行在线SfM,我需要将Android手机上的图像流发送到Matlab。我已经设法通过TCP/IP套接字编程从Android向Matlab发送了数字节的数据,但我无法将其转换为图像。我希望映像将保存在目录中,或者如果它可能被SfM管道直接使用,请参见此链接:。我试着用java对其进行解码,如下所述:,但效果不佳。我在“height=jimage.getHeight;”上收到一个错误“来自非结构数组对象的结构内容引用”。你知道如何解决这个问题吗?或者您知道如何在Matlab中正确执行此操

我目前正在进行在线SfM,我需要将Android手机上的图像流发送到Matlab。我已经设法通过TCP/IP套接字编程从Android向Matlab发送了数字节的数据,但我无法将其转换为图像。我希望映像将保存在目录中,或者如果它可能被SfM管道直接使用,请参见此链接:。我试着用java对其进行解码,如下所述:,但效果不佳。我在“height=jimage.getHeight;”上收到一个错误“来自非结构数组对象的结构内容引用”。你知道如何解决这个问题吗?或者您知道如何在Matlab中正确执行此操作吗

这是我在doInBackground方法中的AsyncTask类中的Java代码:

socket = new Socket();
SocketAddress socketAddress = new InetSocketAddress(host, port);
socket.connect(socketAddress, 2000);

final DataOutputStream dataOutputStream;

final BufferedOutputStream out = new BufferedOutputStream(socket.getOutputStream());
int count = data[0].length;

dataOutputStream = new DataOutputStream(socket.getOutputStream());

dataOutputStream.writeInt(count);
dataOutputStream.flush();

out.write(data[0], 0, count);

out.flush();
这是我的Matlab代码:

t = tcpip('0.0.0.0', 8889, 'NetworkRole', 'Server');
set(t,'InputBufferSize', 3000000);
set(t,'Timeout', 30);
disp('Waiting Connection...');
fopen(t);

while(1) 
 if (t.BytesAvailable > 0)
  disp('Connection succeed.');
  rawData = fread(t,t.BytesAvailable);
  whos rawData; 
  jimage = javax.imageio.ImageIO.read(java.io.ByteArrayInputStream(rawData));
  height = jimage.getHeight;
  width = jimage.getWidth;
  pixels = reshape(typecast(jimage.getData.getDataStorage, 'uint8'), [3,width,height]);
  img = cat(3, ...
  transpose(reshape(pixels(3,:,:), [width,height])), ...
  transpose(reshape(pixels(2,:,:), [width,height])), ...
  transpose(reshape(pixels(1,:,:), [width,height])));
  imshow(img);
end
end
fclose(t);
这是我从“世界卫生组织原始数据”中获得的数据样本:


双字节数组类型
。请以这样一个数组的例子开始你的文章。我不知道你在说什么。
data[0]
什么是
data
?里面有什么?请在代码中显示所有内容。编辑您的帖子。在线SfM`?那是什么?
字节数组双精度类型
。请以这样一个数组的例子开始你的文章。我不知道你在说什么。
data[0]
什么是
data
?里面有什么?请在代码中显示所有内容。编辑您的帖子。在线SfM`?那是什么?
Size: 390964x1           
Bytes: 3127712  
Class: double