Вы можете сделать это в командной строке с ImageMagick, или в Python, Perl, PHP или C/C++.
Во-первых, извлечь альфа-канал:
convert input.png -alpha extract alpha.png
Но я собираюсь сделать морфологию и я хочу белый на черном, так инвертировать:
convert input.png -alpha extract -negate alpha.png
Теперь запустите "Connected Components" анализ, чтобы найти сгустки белого:
convert input.png -alpha extract -negate -threshold 50% \
-define connected-components:verbose=true \
-define connected-components:area-threshold=100 \
-connected-components 8 -auto-level null:
Выходные
Objects (id: bounding-box centroid area mean-color):
0: 600x376+0+0 249.7,205.3 129723 srgb(0,0,0)
2: 203x186+70+20 170.8,112.6 27425 srgb(255,255,255)
1: 218x105+337+13 445.5,65.0 22890 srgb(255,255,255)
4: 218x105+337+251 445.5,303.0 22890 srgb(255,255,255)
3: 218x104+337+132 445.5,183.5 22672 srgb(255,255,255)
И там они. Игнорируйте первую строку, потому что она черная и соответствует всему изображению. Теперь посмотрим на вторую строку, и вы увидите, что блок равен 203x186 при смещении + 70 + 20. Центроид тоже есть. Позвольте мне боксировать, что капля в красный:
convert input.png -stroke red -fill none -draw "rectangle 70,20 272,205" z.png
Дело в том, что вы не можете ожидать блок, потому что звезда-образную форму, не один. –