Я работаю над использованием Python 3, чтобы принимать поток IP-веб-камеры и отображать его на своем компьютере. Следующий код работает только в Python 2.7.
import cv2
import urllib.request
import numpy as np
stream=urllib.request.urlopen('http://192.168.0.90/mjpg/video.mjpg')
bytes=''
while True:
bytes+=stream.read(16384)
a = bytes.find('\xff\xd8')
b = bytes.find('\xff\xd9')
if a!=-1 and b!=-1:
jpg = bytes[a:b+2]
bytes= bytes[b+2:]
i = cv2.imdecode(np.fromstring(jpg, dtype=np.uint8),cv2.IMREAD_COLOR)
cv2.imshow('i',i)
if cv2.waitKey(1) ==27:
exit(0)
Однако, когда я пробую это на Python 3, я получаю следующую ошибку
байты+=stream.read(16384)
TypeError: невозможно неявно преобразовать объект 'bytes' в str
Это отлично работает в 2.7, но я не могу найти способ заставить его работать в 3, есть идеи?