Существует очень простой способ с ImageMagick , который бесплатен и устанавливается на большинство дистрибутивов Linux и доступен для macOS и Windows - программирование не требуется!
Давайте начнем с этого образа:
Теперь вы просто запустите это в терминале или командной строке:
magick input.png -define connected-components:verbose=true -connected-components 8 -auto-level output.png
Вывод
Objects (id: bounding-box centroid area mean-color):
0: 600x300+0+0 297.4,145.3 128391 srgb(0,0,0) <--- black background
2: 181x181+110+60 200.0,150.0 25741 srgb(0,0,255) <--- blue circle
3: 161x161+420+120 500.0,200.0 20353 srgb(255,0,255) <--- magenta circle
1: 81x81+10+10 50.0,50.0 5166 srgb(0,255,0) <--- green circle
4: 21x21+390+190 400.0,200.0 349 srgb(255,255,0). <--- yellow circle
Я добавил комментарии выше после <---
.
Глядя на синий круг, вы можете видеть его цвет srgb (0,0,255), который синий, и его размеры 181x181 пикселей - такего радиус составляет 90 пикселей.Верхний левый угол содержащего прямоугольника находится в [110,60]
, поэтому центр находится в [200,150]
, что соответствует 200,00 150,00, заданным для центроида.
Аналогично, глядя на желтый круг, его цветэто srgb (255,255,0), который желтый.Его высота и ширина составляют 21 пиксель, что означает радиус 10. Верхний левый угол содержащего квадрата равен [390,190]
, что означает, что центр находится в [400,200]
, что соответствует центроиду, указанному как 400.0,200.0.