我想使用numpy的標籤分割圖像,然後根據每個標籤中找到的索引數來移除符合我的標準的索引。例如,如果有,我會分割這樣的創建和分段使用它區域的圖像SciPy的的label
:爲圖像返回特定的numpy標籤索引
from numpy import ones, zeros
from numpy.random import random_integers
from scipy.ndimage import label
image = zeros((512, 512), dtype='int')
regionator = ones((11, 11), dtype='int')
xs = random_integers(5, 506, size=500)
ys = random_integers(5, 506, size=500)
for x, y in zip(xs, ys):
image[x-5:x+6, y-5:y+6] = regionator
labels, n_labels = label(image)
現在我想找回指數具有大小各區域大於121像素(或一個區域大小)。然後,我想要將這些索引設置爲零,以便它們不再是標記圖像的一部分。什麼是最有效的方式來完成這項任務?
本質上類似於MATLAB的regionprops或利用其直方圖函數的輸出IDL的reverse_indices輸出。
因此,要得到最終答案,您必須執行類似於filtered_labels =(1 - filtered_labels)*標籤 – NanoBennett
這個wizardry是如何工作的?使用輸入數組索引索引? – NanoBennett
對不起,我誤解了你的問題,我以爲你想保持大區域。我看到你想保留小的。你可以用'<='替換'>'(注意0標籤,因爲這是背景)。我已經在答案中做出了改變。我還添加了一個關於使用數組索引數組的註釋。 –