【跑实验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

在这里插入图片描述

可以运行结果!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旅途中的宽~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值