gpt4 book ai didi

python - pyplot 显示不良,图像太暗

转载 作者:行者123 更新时间:2023-12-01 07:57:34 25 4
gpt4 key购买 nike

我正在解决图像处理问题。

我创建了一个将椒盐噪声应用于图像的函数。这是函数:

def sp_noise(image,prob):

res = np.zeros(image.shape,np.uint8)
for i in range(image.shape[0]):
for j in range(image.shape[1]):
rdn = random.random()
if rdn < prob:
rdn2 = random.random()
if rdn2 < 0.5:
res[i][j] = 0
else:
res[i][j] = 255
else:
res[i][j] = image[i][j]
return res

当我想显示结果时出现问题。

wood = loadPNGFile('wood.jpeg',rgb=False)
woodSP = sp_noise(bois,0.01)

plt.subplot(1,2,1)
plt.imshow(bois,'gray')
plt.title("Wood")
plt.subplot(1,2,2)
plt.imshow(woodSP,'gray')
plt.title("Wood SP")

我无法直接发布图片,但这是链接:

image

图片较暗。但是当我显示像素值时

但是当我显示两个图像之间的像素值时,这些值是相同的:

[[ 99  97  96 ... 118  90  70]
[110 110 103 ... 116 115 101]
[ 79 73 65 ... 96 121 121]
...
[ 79 62 46 ... 105 124 113]
[ 86 98 100 ... 114 119 99]
[ 96 95 95 ... 116 111 90]]
[[255 97 96 ... 118 90 70]
[110 110 103 ... 116 115 101]
[ 79 73 65 ... 96 121 121]
...
[ 79 62 46 ... 105 124 113]
[ 86 98 100 ... 114 119 99]
[ 96 95 95 ... 116 111 90]]

我还检查了平均值:

117.79877369007804
117.81332616658703

显然问题出在显示plt.imshow上,但我找不到解决方案

最佳答案

查看documentation imshow 有 2 个可选参数,vminvmax 其中:

When using scalar data and no explicit norm, vmin and vmax define the data range that the colormap covers. By default, the colormap covers the complete value range of the supplied data. vmin, vmax are ignored if the norm parameter is used.

因此,如果这些参数没有指定值,则亮度范围以实际数据值为准,最小值设置为黑色,最大值设置为白色。正如您所发现的,这在可视化中很有用,但在比较中却没有用。因此,只需将 vminvmax 设置为适当的值(可能是 0 和 255)。

关于python - pyplot 显示不良,图像太暗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55883532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com