matplotlib改变jpg图像颜色
matplotlib changes jpg image color
我正在使用 matplotlib imread 函数从文件系统读取图像。但是,它在显示这些图像时会更改 jpg 图像颜色。 [Python 3.5,Anaconda3 4.3,matplotlib2.0]
# reading 5 color images of size 32x32
imgs_path = 'test_images'
test_imgs = np.empty((5,32,32,3), dtype=float)
img_names = os.listdir('test_images'+'/')
for i, img_name in enumerate(img_names):
#reading in an image
image = mpimg.imread(imgs_path+'/'+img_name)
test_imgs[i] = image
#Visualize new raw images
plt.figure(figsize=(12, 7.5))
for i in range(5):
plt.subplot(11, 4, i+1)
plt.imshow(test_imgs[i])
plt.title(i)
plt.axis('off')
plt.show()
它正在为所有图像添加 bluish/greenish 色调。我做错了什么?
matplotlib.image.imread
或 matplotlib.pyplot.imread
将图像读取为无符号整数数组。
然后你隐式地将它转换为 float
。
matplotlib.pyplot.imshow
以不同方式解释两种格式的数组。
- 浮点数组在
0.0
(无颜色)和 1.0
(全彩色)之间解释。
- 整数数组在
0
和 255
之间解释。
您的两个选择是:
使用整数数组
test_imgs = np.empty((5,32,32,3), dtype=np.uint8)
将数组除以 255。绘图之前:
test_imgs = test_imgs/255.
Matplotlib 以 RGB 格式读取图像,而如果您使用 opencv,它以 BGR 格式读取图像。
首先将您的 .jpg 图像转换为 RGB,然后尝试显示它。
它对我有用。
我正在使用 matplotlib imread 函数从文件系统读取图像。但是,它在显示这些图像时会更改 jpg 图像颜色。 [Python 3.5,Anaconda3 4.3,matplotlib2.0]
# reading 5 color images of size 32x32
imgs_path = 'test_images'
test_imgs = np.empty((5,32,32,3), dtype=float)
img_names = os.listdir('test_images'+'/')
for i, img_name in enumerate(img_names):
#reading in an image
image = mpimg.imread(imgs_path+'/'+img_name)
test_imgs[i] = image
#Visualize new raw images
plt.figure(figsize=(12, 7.5))
for i in range(5):
plt.subplot(11, 4, i+1)
plt.imshow(test_imgs[i])
plt.title(i)
plt.axis('off')
plt.show()
它正在为所有图像添加 bluish/greenish 色调。我做错了什么?
matplotlib.image.imread
或 matplotlib.pyplot.imread
将图像读取为无符号整数数组。
然后你隐式地将它转换为 float
。
matplotlib.pyplot.imshow
以不同方式解释两种格式的数组。
- 浮点数组在
0.0
(无颜色)和1.0
(全彩色)之间解释。 - 整数数组在
0
和255
之间解释。
您的两个选择是:
使用整数数组
test_imgs = np.empty((5,32,32,3), dtype=np.uint8)
将数组除以 255。绘图之前:
test_imgs = test_imgs/255.
Matplotlib 以 RGB 格式读取图像,而如果您使用 opencv,它以 BGR 格式读取图像。 首先将您的 .jpg 图像转换为 RGB,然后尝试显示它。 它对我有用。