【问题标题】:What is the direction of pixels in the image stored in numpy array? Left to Right or Top to Bottom?存储在 numpy 数组中的图像中像素的方向是什么?从左到右还是从上到下?
【发布时间】:2019-12-29 14:18:11
【问题描述】:

我正在尝试了解 Python 中的图像处理。

所以,我将以下 31 x 31 像素的 JPG 图像存储在一个 numpy 数组中。

from PIL import Image
import numpy as np

sample = Image.open('datasets/1.jpg')
sample_arr = np.array(sample)

现在,

sample_arr.shape

返回

(31, 31, 3)

sample_arr[0].shape

返回

(31, 3)

据此,我了解到 sample_arr[0] 存储前 31 个像素值,sample_arr[1] 存储接下来的 31 个像素值,依此类推,直到 sample_arr[30] 存储最后 31 个像素值。所以我们存储在数组中的像素总数 = 31 x 31 = 961

我的问题是数组元素相对于我们看到的图像的顺序是什么? sample_arr[0] 是否存储图像最左上角向右方向的前 31 个像素?

【问题讨论】:

    标签: python image numpy python-imaging-library


    【解决方案1】:

    TL;DR原点在左上角,第一个索引是行,第二个索引是列,第三个是颜色通道(R,G,B顺序)。

    sample 对象创建的numpy 数组包含行、列顺序的像素。

    让我们在示例图像上检查一下:

    这张图片有height=2width=4,除了左上角(白色value=255)以外的所有像素都是黑色的(value=0)。它存储为

    [[255   0   0   0]
     [  0   0   0   0]]
    

    如果引入 RGB 颜色,那么每个像素都由 3 个值表示,分别是红色、绿色和蓝色强度。

    [[[255   0   0]
      [  0 255   0]
      [  0   0 255]
      [  0   0   0]]
     [[  0   0   0]
      [  0   0   0]
      [  0   0   0]
      [  0   0   0]]]
    

    【讨论】:

      猜你喜欢
      • 2014-12-31
      • 2023-02-07
      • 1970-01-01
      • 1970-01-01
      • 2014-10-03
      • 1970-01-01
      • 2016-05-16
      • 1970-01-01
      • 2015-02-02
      相关资源
      最近更新 更多