我遇到麻烦,需要你的帮助。我目前正在开展一个项目,要求我首先使用Android设备捕获自然场景(图片),提取文本然后识别文本。
我已经通过Matlab实现了提取和识别的过程。现在我的问题是,如何将从我的Android手机中捕获的图片传输到MATLAB?如何在处理图像后将结果发回手机?
请帮忙。代码将不胜感激。
答案 0 :(得分:2)
您可以使用客户端/服务器套接字。我没有在Android上尝试这个,但我认为只要你有互联网访问它就可以工作。 Matlab client-server和Java 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 []发送,然后在另一端解析它。