Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用基本身份验证从url读取cv2.im_Python_Qr Code_Cv2 - Fatal编程技术网

Python 如何使用基本身份验证从url读取cv2.im

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这可能对你

我正在尝试使用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这可能对你有帮助

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:”错误