Я работаю над сценарием сегментации, который фильтрует сегменты на основе размера сегмента (области) и общей интенсивности пикселей в каждом сегменте.
Я выяснил, как удалять сегменты на основе области, следуя инструкциям ответ в этом посте:
Возвращение указателей c numpy индексов меток для изображения
В заключительной части скрипта я бы хотел удалить сегменты которые имеют общую интенсивность ниже определенного порога.
Надеюсь, этот пример показывает, что я пытаюсь выполнить sh:
import numpy as np
from scipy import ndimage
A = np.array([
[0, 0, 0, 0, 0, 0, 2, 2, 0, 0],
[0, 2, 7, 3, 0, 0, 0, 0, 0, 0],
[0, 0, 4, 2, 0, 0, 0, 0, 0, 0],
[0, 0, 2, 0, 0, 0, 0, 1, 0, 0],
[0, 0, 0, 0, 0, 0, 2, 3, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
[0, 0, 0, 5, 0, 0, 0, 0, 0, 0],
[0, 0, 4, 9, 3, 0, 0, 4, 0, 0],
[0, 0, 0, 6, 0, 0, 0, 5, 3, 0],
[0, 3, 0, 0, 0, 0, 0, 0, 0, 0],
])
Я могу получить сумму каждого сегмента, используя:
label_A, nb_labels = ndimage.label(A)
seg_sum = ndimage.sum(A, label_A, range(nb_labels + 1))
seg_sum
Output: array([ 0., 4., 20., 7., 27., 12., 3.])`
I хотелось бы иметь возможность конвертировать любые сегменты с суммой менее 10 в нули. Буду признателен за любую оказанную помощь. Спасибо