获取图像像素数据而不保存

时间:2018-05-15 15:19:34

标签: python image image-processing download

有没有办法从图像中获取给定坐标处的RGB值而无需将其保存到磁盘?那么可以用Python库输入图像的URL并读取它们的RGB数据(或者保存然后以最佳方式删除它们)吗?

2 个答案:

答案 0 :(得分:0)

通常情况下,至少在线查找图像的情况下,将图像保存到磁盘然后将图像加载到程序中会更容易。

替代方案是从网站本身请求图像,这是完全可能的,但更多的工作。 requestsurllib模块可以为您提供帮助。 http://docs.python-requests.org/en/master/ - 相关问题:How do I read image data from a URL in Python? How to download image using requests

如果您已经对图片进行网页抓取,请提供一个包含大量图片网址的列表,或者您不必尝试查找,或者拥有来自网站本身的图像可能是更好的选择处理链接变化的图像(或一般动态提供的图像)

如果您首先必须找到图像,并复制(仅图像)的网址,或以其他方式弄乱每个单独图像的请求,您可能只需点击并保存,除非HD内存空间是问题,(imo)

我想你可以尝试在浏览器加载图像时找到存储图像的位置,但是很多更多的工作,并且可能不可靠。

<击>

您也可以尝试&#34;分开&#34;来自当前&#34;截图&#34;的图片在记忆中。另一个很多工作和不可靠的&#34;方法。(编辑后)

答案 1 :(得分:0)

根据您要完成的内容的性质,无需将图像保存到文件中。您还没有说过您想使用哪个成像库。 PIL(枕头这几天)是一个非常受欢迎的选择。但还有其他人。

许多人更喜欢使用Requests 来管理网址下载。但这是一个额外的安装模块。你也可以试试urllib.request.urlopen,这是标准库的一部分。

这里有一小段代码,它将使用PIL(枕头)加上urllib或Python3中的请求:

from PIL import Image
from io import BytesIO

# BBC Test Card F image from 1967
url = 'https://upload.wikimedia.org/wikipedia/en/5/52/Testcard_F.jpg'

# load the image with urllib + BytesIO
import urllib.request

response = urllib.request.urlopen(url)
img = Image.open(BytesIO(response.read()))

# load the image with requests
import requests

response = requests.get(url)
img = Image.open(BytesIO(response.content))