Python 通過(guò)URL打開(kāi)圖片實(shí)例詳解
Python 通過(guò)URL打開(kāi)圖片實(shí)例詳解
不論是用OpenCV還是PIL,skimage等庫(kù),在之前做圖像處理的時(shí)候,幾乎都是讀取本地的圖片。最近嘗試爬蟲(chóng)爬取圖片,在保存之前,我希望能先快速瀏覽一遍圖片,然后有選擇性的保存。這里就需要從url讀取圖片了。查了很多資料,發(fā)現(xiàn)有這么幾種方法,這里做個(gè)記錄。
本文用到的圖片URL如下:
img_src = 'http://wx2.sinaimg.cn/mw690/ac38503ely1fesz8m0ov6j20qo140dix.jpg'
1.用OpenCV
OpenCV的imread()只能加載本地的圖片,并不能通過(guò)網(wǎng)址加載圖片。但是,opencv的VideoCapture類可以從url加載視頻。如果只用opencv的話,我們可以一個(gè)迂回的方式:先用VideoCapure加載網(wǎng)址下的圖片,然后再傳給Mat。
import cv2 cap = cv2.VideoCapture(img_src) if( cap.isOpened() ) : ret,img = cap.read() cv2.imshow("image",img) cv2.waitKey()
2. OpenCV+Numpy+urllib
import numpy as np import urllib import cv2 resp = urllib.urlopen(img_src) image = np.asarray(bytearray(resp.read()), dtype="uint8") image = cv2.imdecode(image, cv2.IMREAD_COLOR) cv2.imshow("Image", image) cv2.waitKey(0)
urlopen返回 一個(gè)類文件對(duì)象,它提供了如下方法:
read() , readline() , readlines() , fileno() , close() :這些方法的使用方式與文件對(duì)象完全一樣。然后把返回的類文件對(duì)象重新編碼,轉(zhuǎn)換為圖片傳給Mat。
3.PIL+requests
import requests as req from PIL import Image from io import BytesIO response = req.get(img_src) image = Image.open(BytesIO(response.content)) image.show()
requests能以字節(jié)的方式訪問(wèn)請(qǐng)求響應(yīng)體,以上就是以請(qǐng)求返回的二進(jìn)制數(shù)據(jù)創(chuàng)建一張圖片的代碼。
4. skimage
from skimage import io image = io.imread(img_src) io.imshow(image) io.show()
相對(duì)來(lái)說(shuō),這種方式應(yīng)該是最簡(jiǎn)單的,因?yàn)閟kimage可以直接以imread()函數(shù)來(lái)讀取網(wǎng)頁(yè)圖片,而不需要其他的輔助,也不需要迂回。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
Python登錄注冊(cè)驗(yàn)證功能實(shí)現(xiàn)
本篇文章給大家整理了用python實(shí)現(xiàn)登陸注冊(cè)驗(yàn)證的基本會(huì)員功能,對(duì)此有需要的朋友可以參考下。2018-06-06python進(jìn)階教程之循環(huán)對(duì)象
這篇文章主要介紹了python進(jìn)階教程之循環(huán)對(duì)象,循環(huán)對(duì)象是這樣一個(gè)對(duì)象,它包含有一個(gè)next()方法,這個(gè)方法的目的是進(jìn)行到下一個(gè)結(jié)果,需要的朋友可以參考下2014-08-08python實(shí)現(xiàn)從ftp服務(wù)器下載文件的方法
這篇文章主要介紹了python實(shí)現(xiàn)從ftp服務(wù)器下載文件的方法,涉及Python操作FTP的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04Python+OpenCV實(shí)現(xiàn)火焰檢測(cè)
本文主要為大家介紹了一個(gè)使用Python,OpenCV,線程,聲音和電子郵件功能的火災(zāi)探測(cè)系統(tǒng),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2024-10-10python之PySide2安裝使用及QT Designer UI設(shè)計(jì)案例教程
這篇文章主要介紹了python之PySide2安裝使用及QT Designer UI設(shè)計(jì)案例教程,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07Pyhton爬蟲(chóng)知識(shí)之正則表達(dá)式詳解
正則表達(dá)式又稱規(guī)則表達(dá)式,計(jì)算機(jī)科學(xué)的一個(gè)概念,正則表達(dá)式通常被用來(lái)檢索、替換那些符合某個(gè)模式(規(guī)則)的文本,這篇文章主要給大家介紹了關(guān)于Pyhton爬蟲(chóng)知識(shí)之正則表達(dá)式的相關(guān)資料,需要的朋友可以參考下2022-04-04關(guān)于使用OpenCsv導(dǎo)入大數(shù)據(jù)量報(bào)錯(cuò)的問(wèn)題
這篇文章主要介紹了使用OpenCsv導(dǎo)入大數(shù)據(jù)量報(bào)錯(cuò)的問(wèn)題 ,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08