Python 3 IP 网络摄像头字节错误
Python 3 IP Webcamera byte Error
我正在研究如何使用 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 上尝试时,出现以下错误
bytes+=stream.read(16384)
TypeError: Can't convert 'bytes' object to str implicitly
这在 2.7 中完美运行,但我找不到让它在 3 中运行的方法,有什么想法吗?
in python3 str 不是单字节
改为
bytes=b''
bytes 也是内置的...您可能不应该将其用作变量名
我正在研究如何使用 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 上尝试时,出现以下错误
bytes+=stream.read(16384)
TypeError: Can't convert 'bytes' object to str implicitly
这在 2.7 中完美运行,但我找不到让它在 3 中运行的方法,有什么想法吗?
in python3 str 不是单字节
改为
bytes=b''
bytes 也是内置的...您可能不应该将其用作变量名