【跑实验01】TypeError: ‘function‘ object is not subscriptable

在运行实验的过程中,遇到了一个问题:

Traceback (most recent call last):
  File "get_cropped_val_images.py", line 86, in <module>
    gt_bboxes = get_gt_bboxes[str(image_names[i].replace('jpg', 'xml'))]
TypeError: 'function' object is not subscriptable

在这里插入图片描述

根据错误信息,您正在尝试对函数get_gt_bboxes进行索引操作[str(image_names[i].replace(‘jpg’, ‘xml’))],这是不允许的,因为函数是不可索引的对象。

报错的代码片段为:

 image_names = []
	    for name in os.listdir('val/'):
	        image_names.append(name)
	
	    gt_all_bboxes = get_gt_bboxes()
	
	    output_folder = 'output/'
	    interval = 100
 for i in range(len(image_names)):
        image_path = os.path.join('val/', image_names[i])
        image = cv2.imread(image_path)
        image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
        masks = mask_generator.generate(image)
        bbox_list = extract_bboxes(masks)
        gt_bboxes = get_gt_bboxes[str(image_names[i].replace('jpg', 'xml'))]

根据错误信息,您正在尝试对函数get_gt_bboxes进行索引操作[str(image_names[i].replace(‘jpg’, ‘xml’))],这是不允许的,因为函数是不可索引的对象。

可能的原因是您意图调用get_gt_bboxes函数并将其结果存储在gt_all_bboxes中,但是在代码中我们看不到get_gt_bboxes函数的定义或相关实现。

请确保在代码中包含了正确的get_gt_bboxes函数的定义,并将其结果存储在gt_all_bboxes中,然后在后续代码中使用gt_all_bboxes来获取边界框。

把代码改进后:

    image_names = []
    for name in os.listdir('val/'):
        image_names.append(name)

    gt_all_bboxes = get_gt_bboxes()

    output_folder = 'output/'
    interval = 100
    for i in range(len(image_names)):
        image_path = os.path.join('val/', image_names[i])
        image = cv2.imread(image_path)
        image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
        masks = mask_generator.generate(image)
        bbox_list = extract_bboxes(masks)
        gt_bboxes = gt_all_bboxes[str(image_names[i].replace('jpg', 'xml'))]
        
        selected_bboxes = []
        for bbox_gt in gt_bboxes:
            for bbox_pred in bbox_list:
                if is_bbox_inside(bbox_gt, bbox_pred):
                    selected_bboxes.append(bbox_pred)
                    break

在这里插入图片描述

可以运行结果!

猜你喜欢

转载自blog.csdn.net/wzk4869/article/details/131223699