我正在尝试将一张图片切割成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
这个函数创建了一个4维数组(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])
我获得的图像如下:
我的问题很简单。这里发生了什么?