logo
Loading...

請問如何透過cv2抓取url的圖片 - Cupoy

作業雖然是利用立一種方式,但我想試試看opencv來抓看看url的圖片。程式碼如下;import r...

ml100-3,ml100-3-d05

請問如何透過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
    留言數:0

    import 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 去解析



    cv2.imdecode 文件參考