template_data = cv2.linemod.Template(template_gray, "template", detector.getT(0), mask) object_mask = np.zeros((template_gray.shape[0], template_gray.shape[1]), dtype=np.uint8) detector.addTemplate(template_data, "object", object_mask)报错TypeError: Can't parse 'sources'. Input argument doesn't provide sequence protocol
时间: 2024-02-01 18:16:41 浏览: 147
face_detector.zip
这个错误可能是由于 `detector.getT(0)` 返回的不是一个序列类型(list、tuple等),而是一个单独的值。这样就无法在 `cv2.linemod.Template()` 函数中正确使用。
你可以尝试将 `detector.getT(0)` 的返回值放入一个列表或元组中,例如:
```
template_data = cv2.linemod.Template(template_gray, "template", [detector.getT(0)], mask)
```
或者使用 `np.array()` 将其转换为数组类型,例如:
```
template_data = cv2.linemod.Template(template_gray, "template", np.array([detector.getT(0)]), mask)
```
这样应该可以解决这个问题。
阅读全文