我正在尝试将图像切片为 RGB,但在绘制这些图像时遇到问题。
我使用此函数从某个文件夹获取所有图像:
def get_images(path, image_type):
image_list = []
for filename in glob.glob(path + '/*'+ image_type):
im=misc.imread(filename, mode='RGB')
image_list.append(im)
return image_list
该函数创建 4d 数组 (30, 1536, 2048, 3),我非常确定第一个值代表图像数量,第二个和第三个是维度,第三个是 RGB 值。
获得所有图像后,我将它们存储为 numpy 数组
image_list = get_images('C:\HDR\images', '.jpg')
temp = np.array(image_list)
之后,我尝试使用简单的切片来从这些图像中获取特定的颜色:
red_images = temp[:,:,:,0]
green_images = temp[:,:,:,1]
blue_images = temp[:,:,:,2]
当我打印出这些值时,一切似乎都很好。
print(temp[11,125,311,:])
print(red_images[11,125,311])
print(green_images[11,125,311])
print(blue_images[11,125,311])
我得到以下信息:
[105 97 76]
105
97
76
到目前为止,一切似乎都很好,但是当我尝试显示图像时出现了问题。我用了matplotlib.pyplot.imshow
显示它,我得到的图像如下:
这是合理的,因为我选择红色:
plt.imshow(temp[29,:,:,0])
但是当我将其更改为不同的颜色通道时,如下所示:
plt.imshow(temp[29,:,:,2])
我得到这样的图像:
我的问题很简单。这里发生了什么?