fullseye

physarum_transport_image — GRAPH flow op

使い方

Earth mover’s distance between two mass images by the slime mould’s tube dynamics.

Every pixel is a node; neighbouring pixels (connectivity 4 or 8) are joined by a tube of length 1 (sqrt(2) on diagonals), so the ground metric is the grid path length (Manhattan for 4, octile for 8). Mass a enters and mass b leaves: the supply is a - b after both are scaled to unit mass (normalize=True; with False they must already carry the same mass). Dynamics, convergence and the two-sided bound as in :func:graph_physarum_transport; larger images run on the sparse Laplacian with conjugate gradients.

Returns cost (the 1-Wasserstein distance estimate in pixel units, an upper bound), dual_bound (Kantorovich–Rubinstein lower bound), gap, conductance (an image: each pixel’s thickest incident tube), flow_field ((H, W, 2): the mean of the flow vectors of the tubes at each pixel, in (row, col) units of mass per unit length, for drawing arrows), potential ((H, W) pressures), iters, converged, gap_converged, history, cost_history, dual_history, and with snapshots = m > 0 also snapshots (m conductance images at evenly spaced iterations, the last one final), snapshot_iters and snapshot_cost (sum_e L_e |Q_e| at those iterations) for watching the tubes form.

Raises ValueError: images not 2-D, finite, non-negative, of the same shape with at least 2 rows and columns, or without mass; unequal masses when normalize=False; connectivity not 4 or 8; snapshots < 0; and as :func:graph_physarum_transport.

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(table を入力に取れる)

graph_edge_consensus · graph_core_persistence · tree_morphometry · tree_sholl · tree_run_length

同カテゴリ(flow)

graph_physarum_path · physarum_route · graph_physarum_transport


Provenance: physarum_search.py — GRAPH operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.