請問如何透過cv2抓取url的圖片
2019/08/30 下午 07:31
機器學習共學討論版
Eddie
觀看數:95
回答數:2
收藏數:0
ml100-3
ml100-3-d05
作業雖然是利用立一種方式,但我想試試看opencv來抓看看url的圖片。
程式碼如下;
import requests as re
import cv2
import matplotlib.pyplot as plt
response=re.get('http://farm1.static.flickr.com/145/430300483_21e993670c.jpg').text
img=cv2.imread(response)
type(img)
但跑出來的type(img)卻是None type,有什麼方式可以解決嗎?
回答列表
-
2019/08/31 下午 05:08張維元 (WeiYuan)贊同數:2不贊同數:0留言數:0
嗨, opencv 只能開本地端的檔案,但你的 resp 是抓回來的文字格式。你可以先用程式把圖片下載到本地,在用 opencv 存取(圖片下載可以用 urllib 函式庫的 urlretrieve() 函式)。
-
2019/08/31 下午 06:07李志鴻贊同數:1不贊同數:0留言數:0import cv2
import requests
from io import BytesIO
import matplotlib.pyplot as plt
%matplotlib inline
url = 'http://farm1.static.flickr.com/145/430300483_21e993670c.jpg'
response = requests.get(url)
image = cv2.imdecode(
np.asarray(bytearray(response.content), dtype="uint8"),
cv2.IMREAD_COLOR
)
plt.imshow(image) #BGR將 response.content 轉成 array 後,由 cv2.imdecode 去解析