我正在尝试使用cv2和pyzbar从IP摄像机实时读取QR码。
这有效:
os.system("wget --quiet http://user:password@url -O file.jpg")
image = cv2.imread("file.jpg")
barcodes = pyzbar.decode(image)
但是它显然效率不高-直接读取网址要好得多。但是我不知道如何使用基本身份验证来做到这一点。非常感谢您的帮助。
(有很多类似的问题,但我找不到答案!)
谢谢
丹
答案 0 :(得分:1)
非常感谢-但事实证明,有一个很好的简单答案:
cap=cv2.VideoCapture("http://user:password@url")
_, image=cap.read()
barcodes = pyzbar.decode(image)
答案 1 :(得分:0)
这可能对您有帮助
import numpy as np
import urllib.request as rq
import cv2
from matplotlib import pyplot as plt
# load image from url
def urlToImage(url):
# download image,convert to a NumPy array,and read it into opencv
resp = rq.urlopen(url)
img = np.asarray(bytearray(resp.read()),dtype="uint8")
img = cv2.imdecode(img,cv2.IMREAD_COLOR)
#return the image
return img
img = urlToImage("https://www.pyimagesearch.com/wp-content/uploads/2015/01/google_logo.png")
plt.imshow(img)
答案 2 :(得分:0)
或者有一个不涉及流媒体视频的简单解决方案:
from requests.auth import HTTPBasicAuth
import numpy as np
resp = requests.get(url, auth=(user, password))
image = np.asarray(bytearray(resp.content), dtype="uint8")
image = cv2.imdecode(image, cv2.IMREAD_COLOR)
希望它对其他人有帮助!