I wanted to segment a pointcloud with pcl regiongrowing, but unfortunately there's occuring the following error, when debugging my code. There seems to be a threading error, but i can't figure out what i'm missing to make it work.
Setup
Ubuntu 20.10
pcl-tools installed via sudo
python 3.6.7 conda environment
pclypy installed via conda
Code
import numpy as np
import pclpy
import pyvista as pv
from pyvista import examples
# load mesh from file
filename = "pointcloud_6.ply"
mesh = pv.read(filename)
# find the foreground
foreground = mesh.connectivity(largest=True)
# just some random variable name changing
smooth = mesh
# calculate normal vectors
smooth.compute_normals(cell_normals=False, point_normals=True, inplace=True)
cloud = pclpy.pcl.PointCloud.PointXYZ(smooth.points)
# cloud = pclpy.pcl.vectors.PointXYZ(smooth.points.tolist())
normals = pclpy.pcl.PointCloud.Normal(smooth.point_normals)
# normals = pclpy.pcl.vectors.Normal(smooth.point_normals.tolist())
clusters = pclpy.pcl.vectors.PointIndices()
regiongrow = pclpy.pcl.segmentation.RegionGrowing.PointXYZ_Normal()
regiongrow.setInputCloud(cloud)
regiongrow.setInputNormals(normals)
regions = regiongrow.extract(clusters)
# get unique labels of regions
unique_labels = np.unique(labels)
# plot segments
p = pv.Plotter()
p.add_mesh(smooth)
# for each label add mesh
for label in unique_labels:
ids = np.arange(smooth.n_points)[labels == label]
top = smooth.extract_points(ids)
random_color = np.random.random(3)
p.add_mesh(top, color=random_color)
p.show()
Error
Fatal Python error: Segmentation fault
Thread 0x00007fe90effd640 (most recent call first):
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/threading.py", line 299 in wait
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/threading.py", line 551 in wait
File "/home/lukas/.vscode/extensions/ms-python.python-2021.1.502429796/pythonFiles/lib/python/debugpy/_vendored/pydevd/pydevd.py", line 232 in _on_run
File "/home/lukas/.vscode/extensions/ms-python.python-2021.1.502429796/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py", line 46 in run
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/threading.py", line 916 in _bootstrap_inner
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/threading.py", line 884 in _bootstrap
Thread 0x00007fe90f7fe640 (most recent call first):
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/threading.py", line 299 in wait
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/threading.py", line 551 in wait
File "/home/lukas/.vscode/extensions/ms-python.python-2021.1.502429796/pythonFiles/lib/python/debugpy/_vendored/pydevd/pydevd.py", line 186 in _on_run
File "/home/lukas/.vscode/extensions/ms-python.python-2021.1.502429796/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py", line 46 in run
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/threading.py", line 916 in _bootstrap_inner
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/threading.py", line 884 in _bootstrap
Thread 0x00007fe90ffff640 (most recent call first):
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/threading.py", line 295 in wait
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/threading.py", line 551 in wait
File "/home/lukas/.vscode/extensions/ms-python.python-2021.1.502429796/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_timeout.py", line 43 in _on_run
File "/home/lukas/.vscode/extensions/ms-python.python-2021.1.502429796/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py", line 46 in run
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/threading.py", line 916 in _bootstrap_inner
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/threading.py", line 884 in _bootstrap
Thread 0x00007fe9149b1640 (most recent call first):
File "/home/lukas/.vscode/extensions/ms-python.python-2021.1.502429796/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py", line 210 in _read_line
File "/home/lukas/.vscode/extensions/ms-python.python-2021.1.502429796/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py", line 228 in _on_run
File "/home/lukas/.vscode/extensions/ms-python.python-2021.1.502429796/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py", line 46 in run
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/threading.py", line 916 in _bootstrap_inner
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/threading.py", line 884 in _bootstrap
Thread 0x00007fe9151b2640 (most recent call first):
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/threading.py", line 299 in wait
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/queue.py", line 173 in get
File "/home/lukas/.vscode/extensions/ms-python.python-2021.1.502429796/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py", line 339 in _on_run
File "/home/lukas/.vscode/extensions/ms-python.python-2021.1.502429796/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py", line 46 in run
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/threading.py", line 916 in _bootstrap_inner
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/threading.py", line 884 in _bootstrap
Current thread 0x00007fe917378740 (most recent call first):
File "/home/lukas/Source/wundscanner/algorithms/pcl_region_growing.py", line 28 in <module>
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/runpy.py", line 85 in _run_code
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/runpy.py", line 96 in _run_module_code
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/runpy.py", line 263 in run_path
File "/home/lukas/.vscode/extensions/ms-python.python-2021.1.502429796/pythonFiles/lib/python/debugpy/../debugpy/server/cli.py", line 285 in run_file
File "/home/lukas/.vscode/extensions/ms-python.python-2021.1.502429796/pythonFiles/lib/python/debugpy/../debugpy/server/cli.py", line 444 in main
File "/home/lukas/.vscode/extensions/ms-python.python-2021.1.502429796/pythonFiles/lib/python/debugpy/__main__.py", line 45 in <module>
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/runpy.py", line 85 in _run_code
File "/home/lukas/miniconda3/envs/Wundscanner/lib/python3.6/runpy.py", line 193 in _run_module_as_main
I wanted to segment a pointcloud with pcl regiongrowing, but unfortunately there's occuring the following error, when debugging my code. There seems to be a threading error, but i can't figure out what i'm missing to make it work.
Setup
Code
Error