numpy矩阵与与图像像素排布对应关系

通常我们使用的图像都是三通道,使用python的各种工具加载以后会变成ndarray格式,我们需要弄明白在numpy矩阵里面,每一行每一列对应着的值是图片的哪些信息,否者在做图像的处理时就会显得很盲目。下面通过实验说明:

我选用的实验图片是上面这只英国短毛猫,图像维度信息为(121,121,3)  分别为width*height*channels

image_path = './vgg19/cat.jpg'
input_image = scipy.misc.imread(image_path) # (121,121,3)
print(type(input_image)) # <class 'numpy.ndarray'>
input_image_c1 = input_image[:,:,0] # 最后一个维度拿第一个值,即获取图片的第一个通道
print(input_image.shape) # (121, 121, 3)
print(input_image_c1)
'''
[[214 212 210 ... 230 233 230]
 [214 213 213 ... 233 236 233]
 [210 214 215 ... 231 233 229]
 ...
 [212 211 210 ... 114 113 112]
 [218 216 215 ... 104 106 121]
 [217 216 218 ... 116 117 114]]
'''
print(input_image)
'''
[[[214 144  74]
  [212 143  74]
  [210 143  75]
  ...
  [230 170 110]
  [233 173 113]
  [230 170 108]]

 [[214 144  74]
  [213 144  75]
  [213 146  78]
  ...
  [233 173 113]
  [236 176 114]
  [233 173 111]]
  ...
  ...
]
'''
#经过分析可得, input_image里面[214 144  74]三个数分别代表的是该图片的第一个位置的三个通道值
# 以行主序先排列,第一个二维矩阵的第一列代表第1个通道的第1行,第二个二维矩阵的第一列代表第1个通道的第2行

#现在假如我们需要拿到这张图片第一个通道的第一行
input_image_c1_w1 = input_image[0:1,:,0]
print(input_image_c1_w1)

#现在假如我们需要拿到这张图片第一个通道的第1列
input_image_c1_h1 = input_image[:,0:1,0]
print(input_image_c1_h1)

具体理解需要自己调试代码进行分析,这样才能透彻!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值