为什么来自np阵列的matplotlib图像以红色为主?

时间:2019-02-09 14:58:41

标签: python matplotlib

我一直在从np数组中摄取图像数据,并添加了两个附加维度,因此我可以使用需要RGB数据的图像处理管道,并且图像主要由红色占据。这是我正在做的,从文件路径的数据帧开始:

#get filename
f = files.tail(-1)['name'].values[0]
img = plt.imread(f)
#check if it's an array in 3 dimensions
if len(img.shape) == 2:
    print('not RGB')
    #image sizes vary so get shape
    s = img.shape[0:2]
    dim2 = np.zeros((s))
    dim3 = np.zeros((s))
    pix = np.stack((img, dim2,dim3), axis=2)
    pix = np.true_divide(pix, 255)

    plt.imshow(pix)

和结果样本: red images (should be black/white)

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

以下代码说明了您的问题:

match.params

interface RouteInfo extends RouteProps { id: string; } const ShowIssues = ({ match }: RouteComponentProps<RouteInfo>) => { const { params } = match; const { id } = params; return <div>time to show the issue {id}</div>; }; 是您的灰度图像。 import numpy as np import matplotlib.pyplot as plt A = np.random.rand(10, 10) B = np.zeros((*A.shape, 3)) B[:,:,0] = A C = A.reshape((*A.shape, 1)).repeat(3, 2) fig, axs = plt.subplots(ncols=3) mats = [A, B, C] for ax, mat in zip(axs, mats): ax.imshow(mat) 是您所做的:将A的值分配给RGB图像的红色通道。 B最可能是您想要的:由于需要RGB图像,因此只需复制A的值两次。结果:

enter image description here

从左到右:CAA