开发者

Python image processing of picture directly from the web

I am writing python code to take an image from the web and calculate the standard deviation, ... and do other image processing with it. I have the following code:

from scipy import ndimage  
from urllib2 i开发者_StackOverflow社区mport urlopen  
from urllib import urlretrieve  
import urllib2  
import Image  
import ImageFilter  

def imagesd(imagelist):  
 for imageurl in imagelist:  
     opener1 = urllib2.build_opener()  
     page1 = opener1.open(imageurl)  
     im = page1.read()  
     #localfile = urlretrieve(  
     #img = Image.fromstring("RGBA", (1,1), page1.read())  
     #img = list(im.getdata())  
     # page1.read()  
     print img  
     #standard_deviation(p   

Now I keep going back and forth because I am not sure how to take the image directly from the web, without saving it to disk, and passing it to the standard deviation function.

Any hints/help would be greatly appreciated.

Thanks.


PIL (Python Imaging Library) methods "fromstring" and "frombuffer" expect the image data in a raw, uncompacted, format. When you do page1.read() you get the binary file data. In order to have PIL understanding it, you have to make this data mimick a file, and pass it to the "Image.open" method, which understands the file format as it is read from the web (i.e., the .jpg, gif, or .png data instead of raw pixel values)

Try something like this:

from cStringIO import StringIO
(...)
    data = StringIO(page1.read())
    img = Image.open(data)
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜