pyvista.DataSetFilters.pack_labels#

DataSetFilters.pack_labels(sort=False, scalars=None, preference='point', output_scalars=None, progress_bar=False, inplace=False)[ソース]#

ラベルが連続するようにラベル付けされたデータを再番号付けします.

このフィルタは, 出力ラベルが [0, N) の連続したラベルになるように, N 個のラベルを持つ任意の型のスカラーラベルデータに番号を付け直します.出力はラベル数でソートされることもあります.

出力配列 'packed_labels' はデフォルトで出力に追加され,自動的にアクティブスカラーとして設定されます.

パラメータ:
sortbool, default: False

ラベルの数で出力を降順に並べ替えるかどうか (つまり,最も多いものから最も少ないものへ) .

scalarsstr, optional

パックするスカラーの名前.デフォルトは現在アクティブなスカラーです.

preferencestr, default: "point"

scalars が指定されている場合,これはデータセット内で検索するために推奨される配列型です. 'point' または 'cell' のいずれかでなければなりません.

output_scalarsstr, None

パックされた出力スカラーの名前.デフォルトでは,出力は 'packed_labels' に保存されます.

progress_barbool, default: False

もし True ならプログレスバーを表示します.VTK のバージョンが 9.3. より低い場合は効果がありません.

inplacebool, default: False

True の場合,メッシュはin-place更新されます.

戻り値:
pyvista.Dataset

ラベルがパックされたデータセット.

参考

sort_labels

同様の機能で,デフォルトでは sort=True となります.

備考

このフィルタは,VTKバージョン9.3以上を必要とする基礎的なメソッドとして vtkPackLabels を使用します. vtkPackLabels が利用できない場合は,代わりに NumPy でパッキングが行われるため,処理が遅くなる可能性があります.最高のパフォーマンスを得るためには,VTKをアップグレードすることを検討してください.

バージョン 0.43 で追加.

セグメンテーションされた画像ラベルをパックします.

非連続なイメージラベルをロードします

>>> from pyvista import examples
>>> import numpy as np
>>> image_labels = examples.download_frog_tissue()

ラベルの範囲を表示します

>>> image_labels.get_data_range()
(0, 29)

ラベルの 'ギャップ' を見つけます

>>> label_numbers = np.unique(image_labels.active_scalars)
>>> label_max = np.max(label_numbers)
>>> missing_labels = set(range(label_max)) - set(label_numbers)
>>> len(missing_labels)
4

パックラベルを削除してギャップを埋めます

>>> packed_labels = image_labels.pack_labels()

パックされたラベルの範囲を表示します

>>> packed_labels.get_data_range()
(0, 25)