首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pyplot显示效果不佳,图像太暗

pyplot显示效果不佳,图像太暗
EN

Stack Overflow用户
提问于 2019-04-28 02:18:39
回答 1查看 848关注 0票数 1

我正在研究一个图像处理问题。

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

代码语言:javascript
复制
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

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

代码语言:javascript
复制
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")

我不能直接发布图片,但这里有链接:

情况则更为暗淡。但是当我显示像素的值时

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

代码语言:javascript
复制
[[ 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]]

我还检查了平均值:

代码语言:javascript
复制
117.79877369007804
117.81332616658703

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-28 04:29:35

查看imshowdocumentation,有两个可选参数,vminvmax,它们:

当使用标量数据且无显式规范时,vmin和vmax定义色彩映射覆盖的数据范围。默认情况下,色彩映射表覆盖所提供数据的完整值范围。如果使用norm参数,则忽略vmin和vmax。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55883532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档