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
ラベルの数で出力を降順に並べ替えるかどうか (つまり,最も多いものから最も少ないものへ) .
- scalars
str
,optional
パックするスカラーの名前.デフォルトは現在アクティブなスカラーです.
- preference
str
, default: "point" scalars
が指定されている場合,これはデータセット内で検索するために推奨される配列型です.'point'
または'cell'
のいずれかでなければなりません.- output_scalars
str
,None
パックされた出力スカラーの名前.デフォルトでは,出力は
'packed_labels'
に保存されます.- progress_barbool, default:
False
もし
True
ならプログレスバーを表示します.VTK のバージョンが 9.3. より低い場合は効果がありません.- inplacebool, default:
False
True
の場合,メッシュはin-place更新されます.
- sortbool, default:
- 戻り値:
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)