方法一:
Matlab 还提供了Matlab Mobile https://de.mathworks.com/products/matlab-mobile.html,它能够从您的设备上执行Matlab 代码,但是不能将图像发送到Matlab。
但是,您可以使用 WebCam https://play.google.com/store/apps/details?id=com.pas.webcam&hl=en 并打开一个服务器,这非常简单。您可以在后台运行应用程序,然后通过 Matlab-Mobile 连接到 Matlab,并通过您的 IP 地址访问它,通常是端口 8080。
方法二:
您可以使用此处实现的 WebSocket -Server:
https://de.mathworks.com/matlabcentral/fileexchange/50040-jebej-matlabwebsocket
有关如何运行它的更多信息,您可以按照 GitHub 自述文件中的说明进行操作,此处:https://github.com/jebej/MatlabWebSocket
WebSocket 服务器位于 OSI 模型https://en.wikipedia.org/wiki/OSI_model 的第 7 层(应用层)的最高层,并在第 4 层(TCP)上构建 op。但是,您不需要指定缓冲区大小等内容。
以下示例代码直接取自 GitHub 项目的示例代码。为了在 Android 应用程序中实现预期结果,最好的方法是在 Android 上重建客户端应用程序。
回声服务器:
classdef EchoServer < WebSocketServer
%ECHOSERVER Summary of this class goes here
% Detailed explanation goes here
properties
end
methods
function obj = EchoServer(varargin)
%Constructor
obj@WebSocketServer(varargin{:});
end
end
methods (Access = protected)
function onOpen(obj,conn,message)
fprintf('%s\n',message)
end
function onTextMessage(obj,conn,message)
% This function sends an echo back to the client
conn.send(message); % Echo
end
function onBinaryMessage(obj,conn,bytearray)
% This function sends an echo back to the client
conn.send(bytearray); % Echo
end
function onError(obj,conn,message)
fprintf('%s\n',message)
end
function onClose(obj,conn,message)
fprintf('%s\n',message)
end
end
end
要在 MATLAB 类型中运行它:
s = EchoServer(30000);
这将使用本地计算机上的端口 30000。
在 Android 上,只需创建一个 WebSocket-Client 并使用您的 URI,您可以使用 ipconfig (windows) 或 ifconig (Linux) 找到它。在 Android 中,uri 应如下所示:
ws://192.168.1.102:30000
IP地址可能会根据您的IP地址而改变