为什么用PIL在Python中重新缩放图像时出现负像素值?
我正在尝试用PIL的resize函数把一个32x32像素的图像缩放到28x28像素。我先读取了一张PGM格式的图像,里面的像素值只有255和0(我已经检查过文件确认了这一点)。但是,当我进行缩放时,有些像素值变成了负数。
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左右。
这为什么会发生,我该怎么解决呢?顺便提一下,currIm和currIm2的模式都是'F'(浮点数?)
注意:这似乎与Image.BILINEAR插值没有关系。