为numpy数组指定一个图像会使图像的颜色发生变化

2024-04-19 09:46:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我加载一个映像并将其添加到一个空的numpy数组中:

plt.imshow(im)
plt.show()
im = imread('/path_to_image',mode = 'RGB')
array = np.zeros((1, 299, 299,3), dtype = np.int8)
array[0][:,:,:3] = im
print(array[0].shape)
print(im.shape)
plt.imshow(array[0])
plt.show()

This is the output I get

我希望这两个图像在显示时看起来是一样的。当我将图像分配给一个数组时,它似乎发生了变化:

^{pr2}$

Tags: topath图像imagenumpyshownpplt
1条回答
网友
1楼 · 发布于 2024-04-19 09:46:20

im和{}应该有相同的dtype。您可以显式地为零数组定义适当的dtype(如@Divakar所建议的),或者您也可以使用NumPy的^{}和{a2},如下所示:

import numpy as np
import matplotlib.pyplot as plt
from skimage import io

im = io.imread('https://i.stack.imgur.com/crpfS.png')

array = np.zeros_like(im[np.newaxis, :])
array[0] = im

fig, (ax0, ax1) = plt.subplots(1, 2)
ax0.imshow(im)
ax0.set_title('im')
ax1.imshow(array[0])
ax1.set_title('array[0]')
plt.show()

im and array

相关问题 更多 >