2017-08-17 11 views
2

cv2を使用して画像を操作しようとしています。画像はURL形式です。私はcv2.imshow()機能を実行しようとすると、私は次のエラーを取得する:ここでURLから画像を表示する方法

error: (-215) size.width>0 && size.height>0 in function cv::imshow 

は、いくつかのサンプルコードです:

im = cv2.imread('https://mp-media.reebonz.com/images/p-9a/reebonz-31-phillip- 
lim--ladies-bag-31-phillip-lim-1-9ad505f2-03fa-41c1-97dd- 
63c6695f89fa.jpg;mode=pad;bgcolor=fff;404=404.jpg') 
cv2.imshow('image', im) 

にはどうすれば画像が表示するようになるだろうか?操作する前に各画像をローカルでダウンロードする必要がありますか?

答えて

0
from skimage import io 

url_path = "URL/path"  

image = io.imread(url_path) 

それはまだ詳細PILを使ってimread()

とurllibは

from StringIO import StringIO 
from PIL import Image 
import urllib 

Image.open(StringIO(urllib.urlopen(url).read())) 
0

イメージをNumpy Arrayに変換してOpenCV形式に読み込むことができます。そのために、あなたは、単にメソッドを書くことができます:

def url_to_image(url): 
     resp = urllib.urlopen(url) 
     image = np.asarray(bytearray(resp.read()), dtype="uint8") 
     image = cv2.imdecode(image, cv2.IMREAD_COLOR) 

     return image 

は、その後、あなたのメインのコードでは、メソッドを呼び出すと、このような画像を表示することができます

image = url_to_image(url) 
cv2.imshow("Image", image) 

それが働いていた場合、私に教えてください!

0

用画像

を処理するための一時ファイルを作成します、あなたはVideoCaptureを試してみましたか?

import numpy as np 
import cv2 

cap = cv2.VideoCapture('URL/To/Your.jpg') 

# Read frame (read again if source changes like updated jpegs from a webcam) 
ret, frame = cap.read() 

cv2.imshow('image', frame) 

cv2.waitKey(0) 

# When everything done, release the capture 
cap.release() 
cv2.destroyAllWindows() 

Googleは似たような言葉: http://answers.opencv.org/question/16385/cv2imread-a-url/

関連する問題