gpt4 book ai didi

python - 为什么在 Python 中使用 PIL 调整图像大小时会得到负像素值?

转载 作者:太空宇宙 更新时间:2023-11-04 03:46:24 26 4
gpt4 key购买 nike

我正在尝试使用 PIL 的调整大小功能将 32x32 像素的图像重新调整为 28x28。我首先读入像素值全部为 255 或 0 的 PGM 图像(我通过查看文件进行了验证)。但是,当我重新缩放时,一些像素值变为负数。

currIm = Image.open(os.path.join(currSrc,currFile))
currIm2 = currIm.resize((28,28), Image.BICUBIC

imData = numpy.asarray(currIm)
imData2 = numpy.asarray(currIm2)

imData 中的所有值都是 0.0 或 255.0,这是我所期望的。但是,imData2 中的“抗锯齿”像素往往是负值,其值从 0 到 -50 不等,通常在 -30 左右。

为什么会发生这种情况,我该如何解决?对于它的值(value),currIm 和 currIm2 都有 mode = 'F' (Float??)

注意:这好像不是Image.BILINEAR插值的问题

最佳答案

PIL 实现实际上可能是正确的。

一些插值函数,包括双三次函数,很容易出现“超调”。基本上,如果小区域内的值变化足够大,插值函数可以产生原始范围之外的值。

查看有关 Bicubic Interpolation 的维基百科文章.有一个示例图像演示了一些效果和对 acutance 的引用, ringing , 和 clipping .

关于python - 为什么在 Python 中使用 PIL 调整图像大小时会得到负像素值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23645420/

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