davidcaron / pclpy

Python bindings for the Point Cloud Library (PCL)
MIT License
422 stars 59 forks source link

Segmentation fault #80

Open lmarschall opened 3 years ago

lmarschall commented 3 years ago

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

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