2013-03-04 3 views
4

Я разработал приложение для Android, которое подключается к ноутбуку, работающему с Matlab по Bluetooth SPP. Я могу легко отправлять строки взад и вперед, и теперь я заинтересован в отправке изображения из Matlab для отображения на планшете (достаточно серого цвета 48x64). Я не уверен, как упаковать изображение и отправить его на последовательный порт Matlab. Я предполагаю, что вы не можете просто использовать fprintf или fwrite.Отправка изображения Matlab на планшет Android

Это то, что я думаю, что Android сторона может выглядеть

public void drawImage(byte[] buffer){ 
    ImageView camView = (ImageView)findViewById(R.id.camView); 
    Bitmap myBitmap = BitmapFactory.decodeByteArray(buffer, 0, buffer.length); 
    Log.d(TAG,"decoded image"); 
    if(myBitmap != null){ 
    camView.setImageBitmap(myBitmap); 
    Log.d(TAG,"Trying to display..."); 
    } 
    else{ 
     Log.d(TAG, "Bitmap = null"); 
    } 
}// end drawImage 

Любые консультации либо на Andriod или Matlab стороны было бы весьма признателен. Благодаря!

ответ

0

Так что я получил его работу. В основном проблема заключалась в том, что я не отправлял изображение с надлежащим сжатием (либо .jpg, либо .png). Я обнаружил, что если у вас есть образ Matlab, который Matlab представляет просто как матрицу значений пикселей независимо от сжатия, вам нужно создать java BufferedImage, чтобы правильно построить массив байтов, чтобы вы могли декодировать его на стороне Android.

Matlab сторона

import java.awt.*; 
import java.io.*; 
import java.util.*; 
import javax.imageio.*; 
serCam = InitUSBcamera; % initialize USB camera as a serial port 
type = java.lang.String('jpg'); % translating matlab to java 
outputStream = ByteArrayOutputStream; % create java output stream 
im = getsnapshot(serCam); % get an image from the camera 
im2 = imresize(im, [96,128],'nearest'); % reduce the size 
im3 = im2java2d(im2); % create java Buffered Image 
ImageIO.write(im3, type, outputStream); 
bytes = outputStream.toByteArray(); 
fwrite(serTablet, bytes, 'int8') % send the image // changed to async 
0

Вы просто пытаетесь получить серийные данные от Matlab? Почему бы не относиться к нему, как к любым другим последовательным данным.

Сначала я отлаживал приложение для консоли Android, чтобы убедиться, что оно вообще передается, а также чтобы убедиться, что данные передаются так, как вы хотите его передать.

 Смежные вопросы

  • Нет связанных вопросов^_^