weixin_51603225 2023-11-01 14:53 采纳率: 0%
浏览 8
已结题

报错AttributeError: 'list' object has no attribute 'pil'

def box_label(self, box, label='', color=(128, 128, 128), txt_color=(255, 255, 255),line_thickness=2):
    """Add one xyxy box to image with label."""
    if isinstance(box, torch.Tensor):
        box = box.tolist()
    if self.pil or not is_ascii(label):
        self.draw.rectangle(box, width=self.lw, outline=color)  # box
        if label:
            w, h = self.font.getsize(label)  # text width, height
            outside = box[1] - h >= 0  # label fits outside box
            self.draw.rectangle(
                (box[0], box[1] - h if outside else box[1], box[0] + w + 1,
                 box[1] + 1 if outside else box[1] + h + 1),
                fill=color,
            )
            # self.draw.text((box[0], box[1]), label, fill=txt_color, font=self.font, anchor='ls')  # for PIL>8.0
            self.draw.text((box[0], box[1] - h if outside else box[1]), label, fill=txt_color, font=self.font)
    else:  # cv2
        p1, p2 = (int(box[0]), int(box[1])), (int(box[2]), int(box[3]))
        cv2.rectangle(self.im, p1, p2, color, thickness=self.lw, lineType=cv2.LINE_AA)
        if label:
            w, h = cv2.getTextSize(label, 0, fontScale=self.sf, thickness=self.tf)[0]  # text width, height
            outside = p1[1] - h >= 3
            p2 = p1[0] + w, p1[1] - h - 3 if outside else p1[1] + h + 3
            cv2.rectangle(self.im, p1, p2, color, -1, cv2.LINE_AA)  # filled
            cv2.putText(self.im,
                        label, (p1[0], p1[1] - 2 if outside else p1[1] + h + 2),
                        0,
                        self.sf,
                        txt_color,
                        thickness=self.tf,
                        lineType=cv2.LINE_AA)

在做yolov5的可视化界面,显示报错,求解答
File "D:\python\lib\site-packages\ultralytics\utils\plotting.py", line 105, in box_label
if self.pil or not is_ascii(label):
AttributeError: 'list' object has no attribute 'pil'

  • 写回答

2条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-11-01 15:23
    关注

    所有内容均由人工智能模型输出,其内容的准确性和完整性无法保证,不代表我的态度或观点。

    该回答引用ChatGPT-3.5,仅为您提供参考,不保证完全正确
    这个错误发生在代码中的 box_label 函数中,其中 self.pil 是一个属性或变量,但在函数中尝试使用它的属性 pil。根据你的错误信息,self.pil 可能应该是一个对象,其中具有 pil 属性的某个部分。


    要解决这个问题,你需要确保 self.pil 是正确初始化的,并且具有一个 pil 属性。如果 self.pil 是一个对象,你应该检查它是否在初始化时正确设置了 pil 属性。如果 self.pil 应该是一个布尔值而不是一个对象,你可以通过检查 self.pil 的类型并相应地更改代码来解决问题。


    另外,根据你的代码,self.pil 在条件中的作用是判断使用PIL(Python Imaging Library)还是使用OpenCV进行绘图。如果你的目标是在条件成立时使用PIL,你需要确保 self.pil 设置为 True。如果条件不成立时使用OpenCV,那么你需要确保 self.pil 设置为 False


    检查和修复 self.pil 的初始化和使用,以解决这个错误。如果你需要进一步的帮助,请提供更多关于 self.pil 的初始化和设置的信息,以便我能够提供更具体的建议。


    该回答引用NewBing,仅为您提供参考,不保证完全正确
    根据你的报错信息,我猜测你的问题可能是在调用box_label方法时,传入了一个列表对象而不是一个Plotting对象。你可以检查一下你的代码,看看是否有这样的错误。


    如果你想了解更多关于Plotting类和box_label方法的信息,你可以参考这个文档


    该回答引用文心大模型3.5,仅为您提供参考,不保证完全正确
    这个错误是因为在你的代码中,你试图访问一个列表(list)的 'pil' 属性,但是列表没有这个属性,所以 Python 抛出了 AttributeError。


    从你提供的代码中可以看出,self.pil 这个属性是在 box_label 函数中定义的,它应该是用来判断是否使用 PIL (Python Imaging Library)进行绘图。然而在你的环境中,self 对象实际上是一个列表,而不是你预期的对象。


    这个问题可能是在调用 box_label 函数时发生的。你可能需要检查调用这个函数的地方,确保传递的是正确的对象。可能传递了一个列表而不是预期的对象。


    由于我没有完整的代码上下文,我无法给出更具体的建议。但你需要检查你的代码,看看哪里可能传递了错误的对象。你可以在调用 box_label 函数的地方添加一些打印语句,以检查传递给函数的参数是否正确。


    该回答引用讯飞星火认知大模型,仅为您提供参考,不保证完全正确
    这个错误是因为在box_label函数中,self.pil被当作一个属性来访问,但实际上它是一个列表。为了解决这个问题,你需要检查self.pil的定义和使用,确保它是一个正确的对象。如果self.pil是一个布尔值,那么你应该直接使用它,而不是尝试访问它的属性。


    该回答引用通义千问大模型,仅为您提供参考,不保证完全正确
    根据错误信息,“AttributeError: 'list' object has no attribute 'pil'”,看起来像是self是列表而不是你期望的对象。可能是在调用box_label函数之前没有正确初始化对象或传递了错误的对象。


    建议检查一下你在调用这个函数前是否有正确的初始化对象,并确保你传递给函数的self参数是你想要的那个对象。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月3日
  • 创建了问题 11月1日

悬赏问题

  • ¥15 无源定位系统的时差估计误差标准差
  • ¥15 请问这个代码哪里有问题啊
  • ¥20 python--version在命令端输入结果Python is not defined怎么办?还有pip不是exe格式是不是没安装成功?
  • ¥15 通过GaussianView进行结构微调消除虚频
  • ¥15 调用transformers库
  • ¥15 由于导出的数据名字中带有/,导致Matlab打不开,怎么办?
  • ¥15 新硬盘安装的程序总是崩溃,提示遇到错误
  • ¥15 openpcdet自制数据集评估bev精度和3d精度相同
  • ¥15 excel 上下按钮 显示行
  • ¥20 云卓h12pro 数传问题