从表面数据到图像数据#
在这个笔记本中,我们将把表面转换为二值图像和标签图像。
import napari_process_points_and_surfaces as nppas
import vedo
mesh = vedo.load("../../data/branchoid.ply")
surface = nppas.to_napari_surface_data(mesh)
surface
|
|
nppas.SurfaceTuple
|
二值体积#
一个常见的任务是填充体积以创建二值图像堆栈。
binary_image = nppas.surface_to_binary_volume(surface)
binary_image
|
|
|
标记的表面体素#
我们还可以从表面采样点,并将这些点转换为标签图像。
point_cloud = nppas.sample_points_from_surface(surface, distance_fraction=0.01)
point_cloud
array([[26. , 44. , 46.5],
[26. , 43.5, 48. ],
[26. , 43.5, 50. ],
...,
[74.5, 55. , 52. ],
[74.5, 56. , 49. ],
[74.5, 56. , 51. ]], dtype=float32)
point_labels = nppas.points_to_labels(point_cloud)
point_labels
|
|
|
point_labels[50]
|
|
|
这些标签也可以再次转换为点。
centroids = nppas.labels_to_centroids(point_labels)
centroids[:10]
[(26.0, 44.0, 47.0),
(26.0, 44.0, 48.0),
(26.0, 44.0, 50.0),
(26.0, 44.0, 52.0),
(26.0, 44.0, 54.0),
(26.0, 45.0, 46.0),
(26.0, 45.0, 48.0),
(26.0, 45.0, 50.0),
(26.0, 45.0, 52.0),
(26.0, 45.0, 55.0)]