Время выхода: 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, а затем из нее можно получить эти связанные области для последующего анализа. и обработка. . Аналогия трехмерных данных один раз.