TypeError: unsupported operand type(s) for *: '_dlib_pybind11.point' and '_dlib_pybind11.point'
时间: 2023-06-27 13:07:44 浏览: 182
这个错误通常是由于在代码中使用了不兼容类型的操作符,比如把两个点对象相乘了。根据错误提示信息,你的代码中出现了两个 `point` 对象相乘的操作,这是不被支持的。你需要检查代码中这个操作符的使用,看看是否有误。如果你需要计算两个点之间的距离,可以使用 `dlib` 库中的 `point_distance()` 函数。
相关问题
TypeError: part(): incompatible function arguments. The following argument types are supported: 1. (self: _dlib_pybind11.full_object_detection, idx: int) -> _dlib_pybind11.point Invoked with: <_dlib_pybind11.full_object_detection object at 0x0000022471652B30>, 36, 42
这个错误是由于传递给 `part()` 函数的参数类型不匹配所引起的。根据错误信息,`part()` 函数需要一个整数类型的参数 `idx`,但是你传递了两个参数 `36` 和 `42` 给它。你需要检查你的代码,确保你正确地使用了 `part()` 函数,并且传递了一个整数类型的参数 `idx`。你可以尝试将 `part()` 函数的参数改为单个整数类型的参数,例如 `part(36)` 或 `part(42)`,并查看是否解决了该错误。
proj_points = cloud - np.dot(cloud, slice_normal)[:, np.newaxis] * slice_normal[np.newaxis, :] File "<__array_function__ internals>", line 6, in dot TypeError: unsupported operand type(s) for *: 'open3d.cpu.pybind.geometry.PointCloud' and 'float'
这个错误提示说明了您正在尝试对类型为“open3d.cpu.pybind.geometry.PointCloud”的变量执行乘法运算,而这不是一个有效的操作。这个错误可能是因为您没有正确地将点云数据转换为NumPy数组。
请尝试将点云数据转换为NumPy数组,例如:
```python
cloud_array = np.asarray(cloud.points)
```
然后再使用上面的投影代码:
```python
proj_points = cloud_array - np.dot(cloud_array, slice_normal)[:, np.newaxis] * slice_normal[np.newaxis, :]
```
这样能够使点云数据正确地进行投影操作。
阅读全文