栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

python-图像的RGB矩阵

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python-图像的RGB矩阵

请注意,截至2018年,此答案已过时。

scipy
已弃用
imread
,您应该切换到
imageio.imread
。有关两者之间的差异,请参阅此过渡文档。如果仅导入新库来代替旧库,则下面的代码应该没有任何变化,但我尚未对其进行测试。


最简单的答案是在PIL周围使用NumPy和SciPy包装器。有一个很棒的教程,但基本思想是:

from scipy import miscarr = misc.imread('lena.png') # 640x480x3 arrayarr[20, 30] # 3-vector for a pixelarr[20, 30, 1] # green value for a pixel

对于640x480 RGB图像,这将为您提供640x480x3的数组

uint8

或者,您可以仅使用PIL(或更确切地说,使用Pillow打开文件;如果您仍在使用PIL,则此方法可能不起作用,或者可能很慢),然后直接将其传递给NumPy:

import numpy as npfrom PIL import Imageimg = Image.open('lena.png')arr = np.array(img) # 640x480x4 arrayarr[20, 30] # 4-vector, just like above

这将为您提供640x480x4类型的数组

uint8
(第四个是alpha;
PIL始终将PNG文件加载为RGBA,即使它们没有透明性;也请确保
img.getbands()
您不确定)。

如果您根本不想使用NumPy,则PIL自己的

PixelArray
类型是一个受限制的数组:

arr = img.load()arr[20, 30] # tuple of 4 ints

这为您提供了640x480

PixelAccess
的RGBA 4元组数组。

或者,您可以仅调用

getpixel
图像:

img.getpixel(20, 30) # tuple of 4 ints


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/611873.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号