I наполовину ответил на вопрос о нахождении кластеров массы в растровом изображении . Я говорю полу-ответ, потому что я оставил его в состоянии, когда все точки в растровом изображении отсортированы по массе, и оставил его читателю для фильтрации списка, удаляющего точки из того же кластера.
Затем, подумав об этом шаге, я обнаружил, что решение не выпрыгнуло на меня так, как я думал. Теперь я прошу вас, ребята, о помощи У нас есть список точек с такими же массами (список кортежей Python, но вы можете представить его так, как считаете нужным на любом языке):
[ (6, 2, 6.1580555555555554),
(2, 1, 5.4861111111111107),
(1, 1, 4.6736111111111107),
(1, 4, 4.5938888888888885),
(2, 0, 4.54),
(1, 5, 4.4480555555555554),
(4, 7, 4.4480555555555554),
(5, 7, 4.4059637188208614),
(4, 8, 4.3659637188208613),
(1, 0, 4.3611111111111107),
(5, 8, 4.3342191043083904),
(5, 2, 4.119574829931973),
...
(8, 8, 0.27611111111111108),
(0, 8, 0.24138888888888888) ]
Каждый кортеж имеет форму:
(x, y, mass)
Обратите внимание, что список отсортирован здесь. Если ваше решение предпочитает не сортировать их, это нормально.
Задача, , если вы помните , состоит в том, чтобы найти основные скопления массы. Количество кластеров неизвестно. Но вы знаете размеры растрового изображения. Иногда несколько точек внутри кластера имеют большую массу, чем центр следующего (по размеру) кластера. Поэтому я хочу пойти из точек с большей массой и удалить точки в том же кластере (точки рядом).
Когда я попытался это сделать, мне пришлось снова и снова просматривать части списка. У меня такое чувство, что я просто глуп по этому поводу. Как бы вы это сделали? Псевдокод или реальный код. Конечно, если вы можете просто взять то, что я оставил в этом ответе с кодом Python, мне будет проще с ним поэкспериментировать.
Следующий шаг - выяснить, сколько кластеров действительно имеется в растровом изображении. Я все еще пытаюсь определить эту проблему, поэтому могу вернуться с вопросом об этом.
РЕДАКТИРОВАТЬ: Я должен уточнить, что я знаю, что нет "правильного" ответа на этот вопрос. И название вопроса является ключевым. Первый этап моей кластеризации завершен. Я в поиске быстрого, точного, "достаточно" метода фильтрации ближайших точек.
Дайте мне знать, если вы увидите, как я могу прояснить вопрос.