【发布时间】:2019-12-23 15:21:36
【问题描述】:
我正在尝试在 python 上使用 OpenCV 打开大量图像,因为我需要稍后使用它们。
其实我可以用这样的枕头实现这个目标:
url = r'https://i.imgur.com/DrjBucJ.png'
response = requests.get(url, stream=True).raw
guess = Image.open(response).resize(size)
我正在使用来自 python 的库 requests。
response 看起来像这样:b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x01\xdb\...
如果我没记错的话,这些是 url 图像中的像素值,对吗?
我的问题是:如何使用 OpenCV 做同样的事情?
我试过这样:
resp = requests.get(url)
image = np.asarray(bytearray(resp.read()), dtype="uint8")
image = cv2.imdecode(image, cv2.IMREAD_COLOR)
我得到这个错误:
image = np.asarray(bytearray(resp.read()), dtype="uint8")
AttributeError: 'Response' object has no attribute 'read'
我从这个网站获得了代码:https://www.pyimagesearch.com/2015/03/02/convert-url-to-image-with-python-and-opencv/
【问题讨论】:
-
urllib与requests不同,请尝试resp.raw。 -
错误:(-215:Assertion failed) !buf.empty() && buf.isContinuous() in function 'cv::imdecode_'
标签: python opencv python-requests