2012-04-09 48 views
1

我有麻煩,需要您的幫助。我目前正在研究一個項目,該項目需要我首先使用Android設備捕捉自然場景(圖片),提取文本並識別文本。如何將圖片從android設備傳輸到Matlab,反之亦然

我已經通過Matlab實現了提取和識別的過程。現在我的問題是,我如何將從我的android手機中捕獲的圖片傳輸到MATLAB?處理圖像後如何將結果發送回手機?

請幫忙。代碼將不勝感激。

+1

第一部分,這可能是一個簡單的選擇:http://www.mathworks.com/matlabcentral/answers/12036-how-do-i-use-my-smart-phone-camera-as-a -webcam-in-matlab – 2012-04-11 14:06:37

+0

@Surya這個項目的方法做得好嗎? – User404 2016-03-11 22:14:35

回答

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 []發送,然後在另一端解析它。

相關問題