1

検出された粒子のラベル付き画像と、各ラベル付き粒子の対応する領域を含むデータフレームがあります。私がやりたいことは、指定された値よりも小さい領域を持つ画像上のすべての粒子を除外することです。

以下の例で動作するようになりましたが、よりスマートで特に高速な方法が必要であることはわかっています。たとえば、画像を配列と比較してループをスキップします。

ご協力いただきありがとうございます!

例:

labels = df["label"][df.area > 5000].to_numpy()
mask = np.zeros(labeled_image.shape)
for label in labels:
    mask[labeled_image == label] = 1

データフレーム:

      label  centroid-0  centroid-1  area
0         1          15        3681   191
1         2          13        1345   390
2         3          43        3746   885
3         4          32        3616   817
4         5          20        4250   137
    ...         ...         ...   ...
3827   3828        4149        1620   130
3828   3829        4151         852    62
3829   3830        4155         330   236
3830   3831        4157         530   377
3831   3832        4159        3975    81
4

1 に答える 1