国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python 通過URL打開圖片實例詳解

2019-11-25 16:08:09
字體:
來源:轉載
供稿:網友

Python 通過URL打開圖片實例詳解

不論是用OpenCV還是PIL,skimage等庫,在之前做圖像處理的時候,幾乎都是讀取本地的圖片。最近嘗試爬蟲爬取圖片,在保存之前,我希望能先快速瀏覽一遍圖片,然后有選擇性的保存。這里就需要從url讀取圖片了。查了很多資料,發現有這么幾種方法,這里做個記錄。

本文用到的圖片URL如下:

img_src = 'http://wx2.sinaimg.cn/mw690/ac38503ely1fesz8m0ov6j20qo140dix.jpg'

1.用OpenCV

OpenCV的imread()只能加載本地的圖片,并不能通過網址加載圖片。但是,opencv的VideoCapture類可以從url加載視頻。如果只用opencv的話,我們可以一個迂回的方式:先用VideoCapure加載網址下的圖片,然后再傳給Mat。

import cv2cap = cv2.VideoCapture(img_src)if( cap.isOpened() ) :  ret,img = cap.read()  cv2.imshow("image",img)  cv2.waitKey()

2. OpenCV+Numpy+urllib

import numpy as npimport urllibimport cv2resp = 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返回 一個類文件對象,它提供了如下方法:

read() , readline() , readlines() , fileno() , close() :這些方法的使用方式與文件對象完全一樣。然后把返回的類文件對象重新編碼,轉換為圖片傳給Mat。

3.PIL+requests

import requests as reqfrom PIL import Imagefrom io import BytesIOresponse = req.get(img_src)image = Image.open(BytesIO(response.content))image.show()

requests能以字節的方式訪問請求響應體,以上就是以請求返回的二進制數據創建一張圖片的代碼。

4. skimage

from skimage import ioimage = io.imread(img_src)io.imshow(image)io.show()

相對來說,這種方式應該是最簡單的,因為skimage可以直接以imread()函數來讀取網頁圖片,而不需要其他的輔助,也不需要迂回。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阜康市| 阿鲁科尔沁旗| 大足县| 湖北省| 鲁山县| 陈巴尔虎旗| 德化县| 潜山县| 区。| 康乐县| 临海市| 鄂尔多斯市| 白河县| 无锡市| 卓资县| 昆山市| 靖边县| 铜梁县| 磐石市| 肇源县| 江城| 高台县| 永福县| 镶黄旗| 大冶市| 綦江县| 长阳| 黄山市| 肥东县| 田东县| 紫云| 沧源| 拜城县| 南皮县| 馆陶县| 诏安县| 五峰| 桦南县| 柳州市| 通化县| 新丰县|