如何使用基本身份验证从URL进行cv2.imread

时间:2019-03-06 08:38:08

标签: python qr-code cv2

我正在尝试使用cv2和pyzbar从IP摄像机实时读取QR码。

这有效:

os.system("wget --quiet http://user:password@url -O file.jpg")
image = cv2.imread("file.jpg")
barcodes = pyzbar.decode(image)

但是它显然效率不高-直接读取网址要好得多。但是我不知道如何使用基本身份验证来做到这一点。非常感谢您的帮助。

(有很多类似的问题,但我找不到答案!)

谢谢

3 个答案:

答案 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)

希望它对其他人有帮助!