私はそれらを後者に扱う必要があるので、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.pyimagessearch.com/2015/03/02/convert-url-to-image-with-python-and-opencv/
@ Mohamed Saeed 答えはあなたの問題を解決しました。以下はURLからイメージを取得するための代替解決策です。
import cv2
import numpy as np
from urllib.request import urlopen
req = urlopen('https://i.imgur.com/DrjBucJ.png')
image = np.asarray(bytearray(req.read()), dtype=np.uint8)
image = cv2.imdecode(image, -1)
cv2.imshow('image',image)
cv2.waitKey(0)
cv2.destroyAllWindows()
_