Python:Urllib2 和 OpenCV

2024-05-21

我有一个程序,可以将图像保存在本地目录中,然后从该目录中读取图像。

但我不想保存图像。我想直接从url读取它。

这是我的代码:

import cv2.cv as cv
import urllib2

url = "http://cache2.allpostersimages.com/p/LRG/18/1847/M5G8D00Z/posters/curious-cat.jpg"
filename = "my_test_image" + url[-4:]
print filename
opener = urllib2.build_opener()

page = opener.open(url) 
img= page.read()

abc = open(filename, "wb")
abc.write(img)
abc.close()

img = cv.LoadImage(filename)

cv.ShowImage("Optical Flow", img)
cv.WaitKey(30)

如果我将其更改为:

img = cv.LoadImage(img)

这会给我这个错误:

参数 1 必须是不带空字节的字符串,而不是 str

我能做些什么?


如果你愿意,你可以使用 PIL。

import cv2.cv as cv
import urllib2
from cStringIO import StringIO
import PIL.Image as pil
url="some_url"

img_file = urllib2.urlopen(url)
im = StringIO(img_file.read())
source = pil.open(im).convert("RGB")
bitmap = cv.CreateImageHeader(source.size, cv.IPL_DEPTH_8U, 3)
cv.SetData(bitmap, source.tostring())
cv.CvtColor(bitmap, bitmap, cv.CV_RGB2BGR)

我想通过这种方法你不需要保存图像文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:Urllib2 和 OpenCV 的相关文章

随机推荐