3D-анализ подключенного домена Python

Python

Время выхода: 25.09.2020

При анализе дефектов материала я буду использовать нож для анализа трехмерной связанной области этого алгоритма.Как JS-кодер, который не находится в мейнстриме, я никогда не буду писать алгоритм сам, и я все еще использую python для его написания. . Но, к счастью, кто-то написал очень удачную библиотеку, на которую можно сослаться, здесь я сосредоточусь на этой библиотеке.

Connected Components 3D

Исходный адрес библиотеки:GitHub.com/coloruable-horn/от…
Установка библиотеки:

#确保你的numpy 库版本是在1.16以上的
pip install connected-components-3d

Пример:

import cc3d
import numpy as np

labels_in = np.ones((512, 512, 512), dtype=np.int32)
labels_out = cc3d.connected_components(labels_in) # 26-connected

connectivity = 6 # only 26, 18, and 6 are allowed
labels_out = cc3d.connected_components(labels_in, connectivity=connectivity)

# You can adjust the bit width of the output to accomodate
# different expected image statistics with memory usage tradeoffs.
# uint16, uint32 (default), and uint64 are supported.
labels_out = cc3d.connected_components(labels_in, out_dtype=np.uint16)

# You can extract individual components like so:
N = np.max(labels_out)
for segid in range(1, N+1):
  extracted_image = labels_out * (labels_out == segid)
  process(extracted_image)

# We also include a region adjacency graph function 
# that returns a set of undirected edges.
graph = cc3d.region_graph(labels_out, connectivity=connectivity) 

Дополнительные инструкции:
Трехмерный анализ связанной области можно понять из результатов данных, полученных с помощью алгоритма двузначной связанной области. (Вы можете обратиться к алгоритму opencv connectComponentsWithStats)

0 0 0 0 0 0 0 0 0 0                      0 0 0 0 0 0 0 0 0 0  
0 1 1 0 0 0 0 0 0 0			 0 1 1 0 0 0 0 0 0 0  
0 1 1 0 0 0 1 1 1 0                      0 1 1 0 0 0 3 3 3 0  
0 0 0 0 0 0 1 1 1 0  	                 0 0 0 0 0 0 3 3 3 0
0 1 1 1 1 0 0 0 0 0                      0 2 2 2 2 0 0 0 0 0                      
0 0 0 0 0 0 0 0 0 0                      0 0 0 0 0 0 0 0 0 0

При выполнении анализа связной области на двумерных данных алгоритм заключается в том, чтобы пометить связанную область разными номерами 0 (0 — фон), 1, 2 и 3, а затем из нее можно получить эти связанные области для последующего анализа. и обработка. . Аналогия трехмерных данных один раз.