File "_qhull.pyx", line 1846, in scipy.spatial._qhull.Delaunay.__init__ File "_qhull.pyx", line 358, in scipy.spatial._qhull._Qhull.__init__
时间: 2024-04-14 19:26:12 浏览: 104
这个错误可能是由于`scipy`库中的`Delaunay`函数无法正确初始化三角剖分导致的。这个问题可能是由于一些原因,比如数据点不满足三角剖分的要求或者`scipy`库的版本问题。
你可以尝试以下方法来解决这个问题:
1. 确保你使用的是最新版本的`scipy`库。你可以使用以下命令升级`scipy`库:
```
pip install --upgrade scipy
```
2. 检查你的数据点是否满足三角剖分的要求。这包括数据点的数量、位置和分布。确保数据点没有重复、没有共线性,并且能够形成合理的三角剖分。
3. 如果你的数据点无法满足三角剖分的要求,可以尝试使用其他的三角剖分算法或库,比如`scipy.spatial.Delaunay`的替代方案,如`scipy.spatial.qhull.Delaunay`。
如果以上方法都无法解决问题,可能需要更多的上下文信息来帮助确定问题的原因。请提供更多关于数据点和代码上下文的详细信息,以便更好地理解和解决问题。
相关问题
hull = ConvexHull(proj_points) File "qhull.pyx", line 2431, in scipy.spatial.qhull.ConvexHull.__init__ File "qhull.pyx", line 279, in scipy.spatial.qhull._Qhull.__init__ ValueError: No points given
这个错误提示说明ConvexHull函数没有接收到有效的点集数据。这可能是因为在投影点云数据时出现了问题,例如点云数据中所有点都被投影到切片方向向量上,导致投影数据为空。
请检查一下点云数据和投影数据的维度和内容,看是否存在错误。可以使用print语句打印出相关变量的值,例如:
```python
print("点云数据:", cloud_array)
print("投影数据:", proj_points)
```
如果发现投影数据为空,可能需要调整切片方向向量或者投影方式。如果投影数据不为空但是ConvexHull函数仍然报错,请检查投影数据的格式和类型是否正确。
跑上面代码出现段错误QH6249 qh_lib_check: Incorrect qhull library called. Size of qhT for caller is 8232, but for library is 8184. QH6259 qh_lib_check: Cannot continue. Library 'qhull_r 7.2.0 (2015.2.r 2016/01/18)' is reentrant (e.g., qhull_r.so) 段错误 (核心已转储)
这个错误通常是由于Open3D使用的qhull库版本与系统中安装的qhull库版本不一致导致的。解决这个问题的方法是手动设置Open3D使用的qhull库路径。可以按照以下步骤进行操作:
1. 找到系统中安装的qhull库路径:
在终端中执行以下命令,查找系统中的qhull库路径:
```
sudo find / -name "libqhull.so*"
```
如果成功找到了qhull库,会输出类似下面的路径:
```
/usr/lib/x86_64-linux-gnu/libqhull.so.7.2.0
```
记下这个路径,后面会用到。
2. 在Python代码中设置qhull库路径:
在Python代码的开头添加以下几行代码,手动设置Open3D使用的qhull库路径:
```python
# 设置qhull库路径
import open3d as o3d
o3d.utility.set_verbosity_level(o3d.utility.VerbosityLevel.Debug)
o3d._build_config.qhull_library = '/usr/lib/x86_64-linux-gnu/libqhull.so.7.2.0'
```
其中,`/usr/lib/x86_64-linux-gnu/libqhull.so.7.2.0`是上一步中找到的qhull库路径。
3. 运行代码:
添加了上述代码后,再次运行代码,应该就不会出现段错误的问题了。
希望这些帮助。
阅读全文