TypeError: unsupported types for_it_:'int','line'

while(True):
    img = sensor.snapshot()

    rects = img.find_rects(threshold = 8000,x_margin = 15, y_margin = 15, r_margin = 15,r_min = 15, r_max = 100, r_step = 15)
    if rects:
        print('sum1 :', len(rects))
        output_str = json.dumps(rects)
        for r in rects:
            img.draw_rectangle(r.rect(),color = (128,250,128)) # rect
        area = (r.x(),r.y(),r.w(),r.h())
        for lines in img.find_lines(threshold = 2000, theta_margin = 40, rho_margin = 25,roi=area):
            for line in range(lines):
                pass
                # img.draw_line(line.line(), color = (255, 0, 0))
            # 如果画面中有两条直线
            if len(lines) >= 2:
                (line1, line2) = find_verticle_lines(lines)
                if (line1 == None or line2 == None):
                    print('it is not a rect')
                else:
                    print('you send rects:',output_str)
                    uart.write('2' '\n')
                    uart.write(output_str+'\n')

    else:
        print('not found rects!')

    cricles = img.find_circles(threshold = 2250, x_margin = 30, y_margin = 30, r_margin = 25,r_min = 10, r_max = 100, r_step = 10)
    if cricles:
        print('sum2 :',len(cricles))
        output_str=json.dumps(cricles)#函数的使用,将字典转化为字符串
        for c in cricles:
            img.draw_circle(c.x(), c.y(), c.r(), color = (255, 0, 0)) # rect
        print('you send cricle:',output_str)
        uart.write('3' '\n')
        uart.write(output_str+'\n')
    else:
        print('not found cricles!')

    print("FPS %f" % clock.fps())

# min_degree = 0 # 直线最小角度
# max_degree = 179 # 直线最大角度

# 判断是否为直角的阈值
right_angle_threshold = (70, 90)
binary_threshold = [(0, 60)]
forget_ratio = 0.8
move_threshold = 5



#利用四边形的角公式,计算出直线夹角
def calculate_angle(line1,lin2):
    angle = (180 - abs(line1.theta() - line.theta()))
    if angle > 90:
        angle = 180 - angle
    return angle

# 判断两个直线之间的夹角是否为直角
def is_right_angle(line1, line2):
    global right_angle_threshold
    angle = calculate_angle(line1, line2)
    if angle >= right_angle_threshold[0] and angle <=  right_angle_threshold[1]: # 判断在阈值范围内
        return True
    return False

#寻找直角
def find_verticle_lines(lines):
    line_num = len(lines)
    for i in range(line_num -1):
        for j in range(i, line_num):
            if is_right_angle(lines[i], lines[j]):
                return (lines[i], lines[j])
    return (None, None)

在最开始运行的时候,错误语句为"for line in (lines):",报错理由为:‘line’ object isn't iterable。后来我便将错误语句改为“for line in range(lines)”,报错理由则变为了不支持的类型,有没有好心人能指出一下,是哪里的类型换算出现问题,初学者目前还看不到该如何更改

lines应该是一个类对象之类的而不是列表之类可以遍历的东西。如果你想要的这个。如果你想要对象的数据,应该用访问对象成员方法的方式来访问而不是遍历。比例获取线的角度就是

for lines in img.find_lines(threshold = 2000, theta_margin = 40, rho_margin = 25,roi=area):
    angle=lines.theta()
    print(angle)