python图像三维数组通透理解

python图像三维数组通透理解

先说结果: 一张图片的颜色是由RGB三个通道构成, 可以把一张图片上的每一个像素点看成一个对象, 这个对象又由RGB三种颜色叠加, 即用一个一维数组表示,假如我们有一张 m * n 个像素点的图片, 那么每一行有 n 个像素, 即每一行有 n 个一维数组, 即这一行是一个二维数组, 那一张图片又有 m 行, 那么我们就得到了 m 个二维数组, 这m 个二维数组构成了一个三维数组

以下图为例:

在这里插入图片描述

红色代表 R 通道亮度值, 绿色代表 G 通道亮度值, 蓝色代表 B 通道亮度值

import numpy as np

threeDim = np.array([[[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]],
                     [[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]]
                     ])
# 索引图片上的某一点的RGB像素组合, 三维数组的shape[0]代表图片上的第几行,shape[1]代表图片上的第几列, shape[2] 代表有几个通道 
print(threeDim[0][0])  # [0 1 2]

# 索引图片上某一点的 B 通道颜色
print(threeDim[0][0][2]) # 2

# 索引所有像素点
print(threeDim[:, :])
'''
打印结果:
[[[0 1 2]
  [0 1 2]
  [0 1 2]
  [0 1 2]]

 [[0 1 2]
  [0 1 2]
  [0 1 2]
  [0 1 2]]]
'''

# 翻转所有通道颜色
print(threeDim[:, :, ::-1])
'''
打印结果:
[[[2 1 0]
  [2 1 0]
  [2 1 0]
  [2 1 0]]

 [[2 1 0]
  [2 1 0]
  [2 1 0]
  [2 1 0]]]
'''
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值