Python 如何使用基本身份验证从url读取cv2.im
我正在尝试使用cv2和pyzbar从IP摄像头实时读取二维码 这项工作:Python 如何使用基本身份验证从url读取cv2.im,python,qr-code,cv2,Python,Qr Code,Cv2,我正在尝试使用cv2和pyzbar从IP摄像头实时读取二维码 这项工作: os.system("wget --quiet http://user:password@url -O file.jpg") image = cv2.imread("file.jpg") barcodes = pyzbar.decode(image) 但这显然是低效的——直接读取url要好得多。但我不知道如何使用基本身份验证来实现这一点。非常感谢你的帮助 (有很多类似的问题,但我找不到任何答案!) 谢谢 Dan这可能对你
os.system("wget --quiet http://user:password@url -O file.jpg")
image = cv2.imread("file.jpg")
barcodes = pyzbar.decode(image)
但这显然是低效的——直接读取url要好得多。但我不知道如何使用基本身份验证来实现这一点。非常感谢你的帮助
(有很多类似的问题,但我找不到任何答案!)
谢谢
Dan这可能对你有帮助
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)
谢谢大家,但有一个简单的答案:
cap=cv2.VideoCapture("http://user:password@url")
_, image=cap.read()
barcodes = pyzbar.decode(image)
或者有一种简单的替代解决方案,不涉及视频流:
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)
希望它能帮助别人 也许这是一个提示:谢谢,我可以看到解决方案就在那里,但是它太复杂/没有注释,我的基本python技能无法完全理解他在做什么。谢谢,但这种方法不适用于基本身份验证-我得到了一个“http.client.InvalidURL:nonnumeric port:”错误