图像的像素值为负是什么情况?

在看https://zhuanlan.zhihu.com/p/28057434这篇文章的代码时, 没明白为啥能把图片数据 转成有负数的数据.. batch_images = batch_images*2 -1 即结果在[-1,1]区间   
图片的像素 整数应该在[0,255]之间,浮点数在[0,1]之间,负数怎么能表示像素呢,负数是如何表示像素的呢?......

后来才知道,是imshow 默认做了标准化。 vmin, vmax 或noraml参数可以调节这个最大最小区间。 实际显示时,不会用到负值。

可以看到前两张图的分布是一样的,都是均匀的。由于标准化方式的不一致, 第三张图黑点更多,第四张图白点更多。


import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl

aa = np.random.uniform(0, 1,size=(28, 28))
bb = np.random.uniform(-5, 5,size=(28, 28))

fig, axes = plt.subplots(1, 4)
axes[0].imshow(aa, cmap='Greys')
axes[1].imshow(bb, cmap='Greys')
axes[2].imshow(bb, vmin=-5, vmax=1, cmap='Greys')
axes[3].imshow(bb, norm=mpl.colors.Normalize(vmin=-1, vmax=5), cmap='Greys')

图像的像素值为负是什么情况?_第1张图片

你可能感兴趣的:(其他)