用python将图像转换为三维数组之后,每一维,每个元素值都代表着什么?

对于一张图片来说,人眼看到的是各种颜色的组合,而计算机看到则是一堆范围在0~255之间的像素值,也就是说如果想让计算机处理图像,首先我们应该将图像转换为数字。怎么转换呢?转换完之后每一维,每个元素值都代表什么含义呢?

1.图像转换

这里用到了一张用PS生成的5x5大小的RGB彩色图像,python,以及scipy.misc库。
这是测试的图像:
在这里插入图片描述
下面是两行简单的代码,可以将图像转换为数组:

import scipy.misc # 首先应该用pip安装scipy库
print(scipy.misc.imread("./5.jpg"))

运行后结果如下:

[[[188  71  38]
  [254 113   0]
  [226 127   0]
  [132  91  39]
  [ 28  46  84]]

 [[118  12 112]
  [202  65  59]
  [242 110  27]
  [218 111  29]
  [151  89  38]]

 [[112  42 102]
  [134  25  90]
  [191  55  59]
  [243 112  22]
  [236 129   0]]

 [[159 116  61]
  [119  52  87]
  [134  29  88]
  [180  66  66]
  [218 116   5]]

 [[232 212  19]
  [166 110  75]
  [136  27 110]
  [145  16 108]
  [183  66  46]]]

2.分析结果

从输出结果来看,python将这张5x5大小的图片转换成了一个3维数组,每个“[ ]”,代表一个维度。每一个维度都代表什么含义呢?

借助macOS下的取色工具,我取到了位于图片最左上角那个像素的RGB值,我们用(1,1)来表示这个像素。这个值是(185,71,44),然后我又取到了(1,2)位置上的RGB值为(251,113,34),然后(1,3),(1,4),(1,5)上的RGB的值分别为(223,126,31),(131,91,44),(29,47,83)。

由于取色器取到的RGB值和python取到的RGB值有一定的误差,所有每个像素的值上下都会差几个数,但是这并不影响我们从中寻找规律。

将取色器的值与输出结果进行比对,我们可以发现,三维数组的最里面的第三个维度(也就是最里面的“[ ]”)代表的是一个像素点的RGB值,第二个维度代表的是这张图片的每一行的5个像素点的RGB值,第三个维度代表的就是这个图片。

  • 21
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值