使用OpenCV时遇到以下错误:INFO: Created TensorFlow Lite XNNPACK delegate for CPU.

自己在初学OpenCV时学习按照别人的代码一行行敲,但是运行时出现了以下错误:

在查阅了资料后发现

于是自己将原代码改为下列代码:

源代码:

新代码:

日志报错就没有啦

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这个错误是因为你尝试对一个`NormalizedLandmarkList`类型的对象进行索引,但是这个对象并不支持索引操作。`NormalizedLandmarkList`是Mediapipe中表示标准化关键点列表的类,它包含了多个`NormalizedLandmark`对象,每个`NormalizedLandmark`对象包含了一个关键点的坐标。因此,你需要先从`NormalizedLandmarkList`对象中获取每个关键点的坐标,然后再进行绘制操作。 具体地,你可以使用以下代码从`NormalizedLandmarkList`对象中获取关键点坐标: ```python landmark_list = results.multi_face_landmarks[face_id] # 获取单个人脸的关键点列表 landmark = landmark_list.landmark[0] # 获取第一个关键点的坐标 image_height, image_width, _ = image.shape # 获取图像高度和宽度 x = int(landmark.x * image_width) # 将横坐标从归一化坐标转换为像素坐标 y = int(landmark.y * image_height) # 将纵坐标从归一化坐标转换为像素坐标 ``` 上述代码中,`face_id`表示人脸的索引,可以根据需要进行修改。`image_height`和`image_width`分别表示图像的高度和宽度,可以使用OpenCV的`cv2.imread()`函数读取图像后获取。`landmark.x`和`landmark.y`表示关键点在图像中的归一化坐标,范围在0到1之间,需要将其乘以图像的宽度和高度,才能转换为像素坐标。 然后,你可以使用上述代码获取的关键点坐标,进行绘制操作,例如: ```python cv2.circle(annotated_image, (x, y), 2, (0, 255, 0), -1) ``` 如果需要绘制关键点的索引,可以使用前面提到的方法,在关键点附近绘制索引。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一道秘制的小菜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值