Колба - проблема изображения - не может str и numpy.ndarray - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь захватить изображение с Picamera (RaspberryPi) и показать его с помощью Flask (в Интернете), но я столкнулся с этой проблемой:

b'Content-Type: image / jpeg \r \ n \ r \ n '+ frame + b' \ r \ n ')

TypeError: невозможно объединить объекты' str 'и' numpy.ndarray '

этокод:

stream = io.BytesIO()
with picamera.PiCamera() as camera2:
    camera2.start_preview()
    time.sleep(0.1)
    camera2.capture(stream, format='jpeg')

data = np.fromstring(stream.getvalue(), dtype=np.uint8)

frame = cv2.imdecode(data, 1)

yield (b'--frame\r\n'
       b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')

Хотя я прочитал эту ссылку, но она мне не помогла: https://blog.miguelgrinberg.com/post/video-streaming-with-flask

выводит:

data = np.fromstring(stream.getvalue(), dtype=np.uint8)

[255 216 255 ..., 175 255 217]

, а также

frame = cv2.imdecode(data, 1)

[[[120 125 104] [120 125 104] [120 124 105] ...

любая помощь будет высоко ценится ...

Спасибо

1 Ответ

0 голосов
/ 29 сентября 2018

Возникают проблемы при объединении байтов строки b'Content-Type: image/jpeg\r\n\r\n' с массивом numpy frames.В качестве примера frames используется строка байтов, которая читается из файла JPEG непосредственно в двоичном режиме.Я думаю, что вы не должны ничего делать с stream.getvalue().он возвращает вам готовую структуру данных для потоковой передачи (jpeg-файл в байтовом представлении).так что просто используйте его

stream = io.BytesIO()
with picamera.PiCamera() as camera2:
    camera2.start_preview()
    time.sleep(0.1)
    camera2.capture(stream, format='jpeg')

yield (b'--frame\r\n'
   b'Content-Type: image/jpeg\r\n\r\n' + stream.getvalue() + b'\r\n')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...