不能在范围内循环中调用“ int”对象

时间:2019-05-16 08:18:04

标签: python loops opencv

所以我正在使用循环来获取图像中的每个像素,但是我遇到了一个我不理解的错误。我正在使用in range循环来做到这一点

height,width=img.shape

当我记录这些时,它会给出正确的结果。尺寸被记录下来,但是当我循环时它给出了错误。我已经看到很多代码使用此功能,但是现在却出现了一些错误。这是怎么回事?

for i in range(0, height):
TypeError: 'int' object is not callable

循环的代码如下:

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]

1 个答案:

答案 0 :(得分:4)

您已将range名称重新定义为一个整数,如果执行type(range),它将返回int而不是range

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

range = 5 # Oh no !  I have done a mistake !


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