【问题标题】:I need to get the image matrix containing pixel values using pillow?我需要使用枕头获取包含像素值的图像矩阵吗?
【发布时间】:2019-08-22 21:53:47
【问题描述】:

我正在尝试运行这个简单的代码来让它输出图像的图像矩阵? 我希望它输出具有行和列的图像矩阵,以便我可以找到具有非零像素值的第一行/列,以便我可以裁剪......但现在我的主要问题是获取矩阵。

请,谢谢!

我不断收到此错误:

Traceback(最近一次调用最后一次): 文件“pillow_images.py”,第 12 行,在 矩阵 = np.array(im.getdata()).reshape(im.size) ValueError: 无法将大小为 147840 的数组重塑为 (231,160)

import PIL #imports PIL library needed for pillow
from PIL import Image # imports Image class from pillow
import numpy as np

im = Image.open("whitewave.png") #loads in the image 

print(im.format, im.size, im.mode) #(PNG, (width,height), Type of image:RGB)

matrix = np.array(im.getdata()).reshape(im.size)
print(matrix)```

【问题讨论】:

  • 该错误很好地提示了问题所在。数组的大小是图像大小的四倍(147840 = 231 * 160 * 4)。 PNG 文件还有 3 个颜色通道和 1 个 alpha 通道。
  • 看来你的图片在RGBA,你必须reshape(231,160,4)
  • 使用matrix = np.array(im),你就可以得到正确的数组而不需要重新整形。
  • 谢谢,你知道有没有办法像 MATLAB 这样以矩阵的形式得到这个?

标签: python image matrix python-imaging-library


【解决方案1】:

使用

matrix = np.array(im)

得到正确形状的矩阵。


【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-04
  • 1970-01-01
  • 2014-07-18
  • 1970-01-01
相关资源
最近更新 更多