“int”对象在 for in range 循环中不可调用

Ash*_*hok 0 python opencv loops

所以我使用循环来获取图像中的每个像素,但我收到一个我不明白的错误。我使用 for in range 循环来执行此操作

height,width=img.shape
Run Code Online (Sandbox Code Playgroud)

当我记录这些时,结果很好。正在记录尺寸,但是当我循环时它会出错。我已经看到很多代码使用它,但现在它给出了一些错误。这里发生了什么?

for i in range(0, height):
TypeError: 'int' object is not callable
Run Code Online (Sandbox Code Playgroud)

循环代码如下所示:

p =[]
p.append(5000)
p.append(0)
p.append(5000)
p.append(0)
for i in range(0, height):
  for j in range(0, width):
    if mask[i][j]==0:
        if i<p[0]:
            p[0]=i
        if i>p[1] :
            p[1] = i
        if j<p[2]:
            p[2]=j
        if j>p[3] :
            p[3] = j
    else:
        img[i,j]=[255,255,255]
Run Code Online (Sandbox Code Playgroud)

Blu*_*ken 5

您已将range名称重新定义为 int,如果您这样做type(range),它将返回int而不是range

您甚至可以使用以下代码行返回旧方法:

range = 5  # Oh no ! I made a mistake !


import builtins
range = builtins.range  # Get back the original method

Run Code Online (Sandbox Code Playgroud)