NameError:未定义全局名称“balanceAr”

2024-06-06 12:54:06 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码有以下错误(最后一行很重要):

Warning (from warnings module): File "C:/[file_location]/itteration 4.py", line 12

avgNug = reduce(lambda x, y: x + y, eachPix[:3])/len(eachPix[:3])

RuntimeWarning: overflow encountered in ubyte_scalars

Traceback (most recent call last):

File "C:/[file_location]/itteration 4.py", line 45, in

threshold(iar4)

File "C:/[file_location]/itteration 4.py", line 13, in threshold

balanceAr.append(avgNum)

NameError: global name 'balanceAr' is not defined

我试过在它之前写“global”,在定义is in之外定义它,“global”定义有多个语法

代码取自sentdex视频https://www.youtube.com/watch?v=nych18rsXKU,这里的代码工作

我和他用的是同一个Python版本,我假设是同一个库,因为这是播放列表中的第四个程序,前3个运行得很好

from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import time

def threshold(imageArray):
balaceAr = []
newAr = imageArray

    for eachRow in imageArray:
        for eachPix in eachRow:
            avgNug = reduce(lambda x, y: x + y, eachPix[:3])/len(eachPix[:3])
            balanceAr.append(avgNum)
    balance = reduce(lambda x, y: x + y, balanceAr)/len(balanceAr)

    for eachRow in newAr:
        for eachPix in eachRow:
            if reduce(lambda x, y: x + y, eachPix[:3])/len(eachPix[:3]) > balance:
                #eachPix 0,1,2,3 = 255
            else:
                #eachPix 0,1,2 = 0
                eachPix[3] = 255

    return newAr

'''in the original code this part is not commented, and there's also a i, i2 and i3
i4 = Image.open('images/sentdex.png')
iar4 = np.array(i4)'''

threshold(iar4)

'''same explanation as previous comment, only coordinates in 2nd () are 0,0;4,0;0,3
fig = plt.figure()
ax4 = plt.subplot2grid((8,6), (4,3), rowspan=4, colspan=3)

ax4.imshow(iar4)
'''

plt.show()

#P.S. I had to write "    " on all lines that didn't have it for stackoverflow
# to interpret it as code, even if it was in the "code" section

Tags: lambda代码inimportreduceforthresholdlen
2条回答

在函数定义下面:


balaceAr = [] # <===== Typo

下次发帖前检查是否有错别字

贴花balaceAr = []有语法错误

您可能需要将其更改为balanceAr= []

相关问题 更多 >