试图将图像用作数组的不受支持的操作数类型

时间:2015-10-27 11:58:27

标签: python python-imaging-library typeerror

def SaveImg(img, path, data):
    #image, temp = Image.fromarray((img-bg+127).astype(np.uint8)), data['temps']

img=img.astype(np.uint8)
#y=127
#x=y.astype(np.uint8)
image, temp = Image.fromarray(img-bg), data['temps']
outFile=path+"/%s - %f-%f C.png" % (datetime.now().strftime("%Y-%m-%d %H.%M.%S"), temp[0], temp[1])
image.save(outFile)
print "Saving to", outFile
#time.sleep(5)

这是我从链接到计算机的相机保存图像的功能。 我得到的错误是:

TypeError: unsupported operand type(s) for -: 'int' and 'NoneType'

我无法理解问题所在。另外,我改变了我写的代码,函数的第一行应该是正确的,但它给了我同样的错误。

我尝试制作一些印刷品以查看错误但我看不到NoneType的任何内容;当我打印时,我不会得到NoneType或全部为零的数组。

1 个答案:

答案 0 :(得分:0)

我在这行代码中看到了一个问题:

image,temp = Image.fromarray( img-bg ),data ['temps']

bg显然是None。您无法从某些内容中减去None,因此“不支持的操作数类型”错误。

从您展示的代码中,无法推断bg应该是什么,或者初始化或计算的位置。从名称我怀疑它是相机的视图,没有任何东西(即'背景')。从另一张图片中减去背景图片是有道理的,但如果没有背景图片则会失败...有没有办法查看其余代码?这来自一些开源项目吗?