Python が URL 経由で画像を開く方法の詳細な説明

黄舟
リリース: 2017-06-04 10:16:16
オリジナル
2256 人が閲覧しました

この記事では主に URL 経由で 画像を開くための と詳細な例を紹介します。OpenCV、PIL、skimage などを使用する場合でも、必要な友人は

を参照してください。ライブラリ、以前画像処理

を行う際、ほぼすべてのローカル画像が読み込まれていました。最近、画像をクロールして保存する前に、画像をすばやく参照して選択して保存したいと思いました。ここでは、URL から画像を読み取る必要があります。色々調べてみたところ、いくつか方法があることが分かりましたので、ここに記録しておきます。

この記事で使用されている画像の URL は次のとおりです:

img_src = 'http://wx2.sinaimg.cn/mw690/ac38503ely1fesz8m0ov6j20qo140dix.jpg'
ログイン後にコピー

1. OpenCV の使用

OpenCV の imread() はローカル画像のみをロードでき、URL を介して画像をロードすることはできません。ただし、opencv の VideoCapture クラスは URL から
videos

を読み込むことができます。 opencv のみを使用する場合は、回りくどい方法を使用できます。まず、VideoCapure を使用して URL にある画像をロードし、それから 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 は、次のメソッドを提供するクラス fileobject

を返します:

read() 、
readline

() 、 readlines() 、

file no()、close(): これらのメソッドはファイル オブジェクトとまったく同じように使用されます。次に、返されたファイルのようなオブジェクトを再エンコードし、画像に変換して 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は、リクエストのレスポンスボディにバイト単位でアクセスできます。 上記は、リクエストによって返されたバイナリデータから画像を作成するコードです。

4. skimage

from skimage import io
image = io.imread(img_src)
io.imshow(image)
io.show()
ログイン後にコピー
skimage は他の支援や迂回を必要とせずに imread() 関数

を使用して Web 画像を直接読み取ることができるため、比較的に簡単な方法であるはずです。

以上がPython が URL 経由で画像を開く方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート