Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
pythonimshow:完全填充和完全空白的图像,完全没有区别_Python_Image Processing_Matplotlib_Jupyter Notebook - Fatal编程技术网

pythonimshow:完全填充和完全空白的图像,完全没有区别

pythonimshow:完全填充和完全空白的图像,完全没有区别,python,image-processing,matplotlib,jupyter-notebook,Python,Image Processing,Matplotlib,Jupyter Notebook,我有两个28x28矩阵,一个用0.5填充,另一个用-0.5填充 show_difference(matrix_filled, matrix_empty) 结果: 另外,为了确保我没有弄乱着色器可以接受的值,我还尝试 show_difference(matrix_filled*0, matrix_filled*2) # numpy arrays 不过我还是得到了同样的结果!为什么? 下面是我用来并排显示它们的函数: def show_difference(image_a, image_b)

我有两个28x28矩阵,一个用0.5填充,另一个用-0.5填充

show_difference(matrix_filled, matrix_empty)
结果:

另外,为了确保我没有弄乱着色器可以接受的值,我还尝试

show_difference(matrix_filled*0, matrix_filled*2)
# numpy arrays
不过我还是得到了同样的结果!为什么?


下面是我用来并排显示它们的函数:

def show_difference(image_a, image_b):
    plt.subplot(1,2,1)
    plt.imshow(image_a, interpolation='none')

    plt.subplot(1,2,2)
    plt.imshow(image_b, interpolation='none')

    plt.show()

每个
imshow
绘图都会根据其最小值和最大值分别进行规格化。由于最小值和最大值对于常量数组是相同的,因此所有像素都将具有颜色贴图中的最低颜色。因此,两个情节看起来是一样的

要定义规范化,可以使用
imshow
vmin
vmax
参数,例如

plt.imshow(array, vmin=0, vmax=2)
或者使用规范化实例,例如

norm=plt.Normalize(vmin=0, vmax=2)
plt.imshow(array, norm=norm)
因此,在您的情况下,您可以首先找出两个数组的最小值和最大值,并将这些值用于图像打印

def show_difference(image_a, image_b):
    norm = plt.Normalize(vmin=np.min([image_a.min(),image_b.min()]),
                         vmax=np.max([image_a.max(),image_b.max()])  )

    plt.subplot(1,2,1)
    plt.imshow(image_a, interpolation='none', norm=norm)

    plt.subplot(1,2,2)
    plt.imshow(image_b, interpolation='none', norm=norm)

    plt.show()

每个
imshow
绘图都会根据其最小值和最大值分别进行规格化。由于最小值和最大值对于常量数组是相同的,因此所有像素都将具有颜色贴图中的最低颜色。因此,两个情节看起来是一样的

要定义规范化,可以使用
imshow
vmin
vmax
参数,例如

plt.imshow(array, vmin=0, vmax=2)
或者使用规范化实例,例如

norm=plt.Normalize(vmin=0, vmax=2)
plt.imshow(array, norm=norm)
因此,在您的情况下,您可以首先找出两个数组的最小值和最大值,并将这些值用于图像打印

def show_difference(image_a, image_b):
    norm = plt.Normalize(vmin=np.min([image_a.min(),image_b.min()]),
                         vmax=np.max([image_a.max(),image_b.max()])  )

    plt.subplot(1,2,1)
    plt.imshow(image_a, interpolation='none', norm=norm)

    plt.subplot(1,2,2)
    plt.imshow(image_b, interpolation='none', norm=norm)

    plt.show()