Картинка закодирована из андроид студии и декодируется в python raspberry pi - PullRequest
0 голосов
/ 03 марта 2019

Я хочу передать текст и картинки из приложения Android в Raspberry Pi ... Я уже отправил текстовые сообщения и отлично их расшифровал ... Но проблема в декодировании картинок ... Я думаю, что получаю правильное декодирование, я думаю..

from socket import *
from time import ctime


ctrCmd = ['Up','Down']

HOST = ''
PORT = 21567
BUFSIZE = 1024
ADDR = (HOST,PORT)
tcpSerSock = socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)

while True:
    print ('Waiting for connection')
    tcpCliSock,addr = tcpSerSock.accept()
    print ('...connected from :', addr)
    try:
            while True:
                    data = ''
                    data = tcpCliSock.recv(BUFSIZE)
                    print(data)
                    data = str(data,encoding='utf-8')
                    if not data:
                            break
                    if data == ctrCmd[0]:
                            print ('Up')
                    if data == ctrCmd[1]:
                            print ('Down')
    except KeyboardInterrupt:
            break
tcpSerSock.close();

и вот код кодировки Android

imageUri = data.getData();
            final InputStream imageStream = 
getContentResolver().openInputStream(imageUri);
            final Bitmap selectedImage = 
BitmapFactory.decodeStream(imageStream);
            imageView.setImageURI(imageUri);

            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            selectedImage.compress(Bitmap.CompressFormat.JPEG, 0, bos);
            array = bos.toByteArray();

Это фото кодов Android и Python для декодирования кода. Я делюсь тем, что получил, отправляя текст и изображение.... Буду признателен за вашу помощь, и я нуждаюсь в этом рано .... Спасибо

картина результатов, которые я получаю в rpi

1 Ответ

0 голосов
/ 04 марта 2019
data = ''
                    data = tcpCliSock.recv(BUFSIZE)
                    #data = str(data,encoding='utf-8')
                    nparr = 
np.fromstring(data.decode('utf-8'),np.uint8)
                    print(nparr)

При применении этого я получил несколько массивов, показанных на прилагаемой картинке здесь Но когда я применил эту строку

#img = cv2.imdecode(nparr, 
cv2.IMREAD_ANYCOLOR)

Это дает некоторые ошибки и список None ...Смотри на прилагаемой картинке здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...