如何将图片从Android设备传输到Matlab,反之亦然

时间:2012-04-09 09:19:11

标签: android file matlab file-transfer

我遇到麻烦,需要你的帮助。我目前正在开展一个项目,要求我首先使用Android设备捕获自然场景(图片),提取文本然后识别文本。

我已经通过Matlab实现了提取和识别的过程。现在我的问题是,如何将从我的Android手机中捕获的图片传输到MATLAB?如何在处理图像后将结果发回手机?

请帮忙。代码将不胜感激。

1 个答案:

答案 0 :(得分:2)

您可以使用客户端/服务器套接字。我没有在Android上尝试这个,但我认为只要你有互联网访问它就可以工作。 Matlab client-serverJava client-server应该是兼容的,因为你应该能够在Matlab中运行服务器并从android上的Java客户端连接到它。 Matlab服务器看起来像:

tcpipServer = tcpip('0.0.0.0',port,'NetworkRole','Server');
fopen(tcpipServer);
imageSize = fread(tcpipServer, 2, 'int32');
image = zeros(imageSize(1), imageSize(2), 3);
for x=1:imageSize(1)
  for y=1:imageSize(2)
    image(x, y, :) = fread(tcpipServer, 3, 'double');
  end
end
%Process image
fwrite(tcpipServer, results, 'double'); %or 'char'

Java客户端可能是这样的:

Socket s = new Socket(<Server IP>, port);
out = new PrintWriter(s.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(s.getInputStream()));

out.println(image.getWidth());
out.println(image.getHeight());
for (int x = 1; x < image.getWidth(); x++) {
  for (int y = 1; y < image.getHeight(); y++) {
    //Write the RGB values. I can't remember how to pull these out of the image.
  }
}

String results = in.readLine();

我不确定数据类型的工作原理。也许PrintWriter以外的东西会更好,或者你可能必须将所有内容作为char []发送,然后在另一端解析它。