import numpy as np
from skimage import io
import matplotlib.pyplot as plt
jeju = io.imread('jeju.jpg')
jeju.shape
> (960,1280,3)
jeju
> Array([[[171, 222, 251],
[172, 223, 252],
[172, 223, 252],
...,
[124, 189, 255],
[121, 189, 254],
[120, 188, 253]],
[[173, 224, 253],
[173, 224, 253],
[173, 224, 253],
...,
[124, 189, 255],
[122, 190, 255],
[121, 189, 254]],
[[174, 225, 254],
[174, 225, 254],
[175, 226, 255]
...,
[125, 190, 255],
[122, 190, 255],
[122, 190, 255]],
...,
[[ 66, 93, 26],
[ 89, 114, 46],
[ 49, 72, 2],
...,
[ 2, 29, 0],
[ 34, 59, 17],
[ 40, 63, 21]],
[[ 44, 71, 4],
[ 23, 50, 0],
[ 29, 52, 0],
...,
[ 40, 67, 22],
[ 0, 19, 0],
[ 16, 41, 0]],
[[ 29, 58, 0],
[ 44, 71, 2],
[ 84, 110, 37],
...,
[ 17, 44, 1],
[ 33, 60, 17],
[ 18, 43, 1]]], dtype=uint8)
plt.imshow(jeju)
plt.imshow(jeju[:,:,0])
jeju[:,:,0]
>Array([[171, 172, 172, ..., 124, 121, 120],
[173, 173, 173, ..., 124, 122, 121],
[174, 174, 175, ..., 125, 122, 122],
...,
[ 66, 89, 49, ..., 2, 34, 40],
[ 44, 23, 29, ..., 40, 0, 16],
[ 29, 44, 84, ..., 17, 33, 18]], dtype=uint8)
---------------------------------------------
如上所述,我从目录中读取图片并将其索引为红色。
因为jeju.shape
的(9601280,3)是(高度,宽度,rgb),我认为如果我使用[:,:,0]
,0表示红色。(我认为r=0,g=1,b=2)
但结果不是红色的图片,而是充满了绿色和蓝色的图片。
为什么会发生这种事?在real中[:,:,0]
是什么意思
你是对的,它代表了红色通道。但是,官方文档中的函数imshow指出,对于2d数组,使用标准化和颜色映射将值映射到颜色
如果要绘制红色通道,则只能这样做
相关问题 更多 >
编程相关推荐