Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > Подсчет пятен |
Автор: Mephisto 1.10.2003, 15:55 |
Если кто может помочь алгоритмом, то заходите http://forum.vingrad.ru/index.php?act=ST&f=3&t=12231. |
Автор: neutrino 1.10.2003, 17:28 |
Приветствую! Все, что касается алгоритмики, остается в этом форуме. В твоем случае можно применить алгоритм Дийкстра. Помечать каждое пятно, скажем цифрой -1. И искать следующую точку с цифрой не равной -1 и не равной цифре фона. Например 0. Алгоритм в самом тупом виде может выглядеть так: цикл I от 0 до (n-1) цикл J от 0 до (m-1) p[I,J]=-1 => следующая итерация цикла p[I,J]=0 => следующая итерация цикла Диикстра(I,J) конец по J конец по I <Диикстра(целые И, Ж)> Тут собственно алгоритм Дийкстра, только не нужно нумеровать шаги, а только писать в ячейках -1. Но он медленно будет работать. Правда его можно хорошенько оптимизировать. |
Автор: neutrino 1.10.2003, 17:36 |
А как картинку в эти цифры преобразовать, это зависит от постановки задачи. Например: какого цвета пятна и т.д. |
Автор: Mephisto 1.10.2003, 17:42 | ||
Спаибо что ответил, но есть небольшая проблема. Ты меня поймешь если зайдешь на мою домашн. страничку и нажмешь ссылку http://grafitchem.narod.ru/Resize_of_Grafit.htm ![]() |
Автор: stab 2.10.2003, 00:39 |
и что надо тут (http://grafitchem.narod.ru/Resize_of_Grafit.htm) найти? обведи в фотошопе ![]() |
Автор: neutrino 2.10.2003, 08:16 | ||
Вот настряпал по моему алгоритму программку. Довольно быстро все работает. Я неучел тот момент, что когда я помечаю пятно, второй раз по нему я не прохожу. Теперь все нормально. Для определения пятна я задал такие условия: 1) ячейка должна быть ненулевой 2) значение меньше пяти Как у тебя там определять относится ли точка к пятну, ты должен знать сам. В этом алгоритме также учтена возможность пятен с общей границей разного цвета. Вот код:
|
Автор: neutrino 2.10.2003, 08:23 |
Картинку посмотрел. Так что там пятна? Черное? Белое? Возможно эту картинку придется немного поменять для этого алгоритма. |
Автор: Mephisto 2.10.2003, 18:00 | ||||
Обьяснения http://forum.vingrad.ru/index.php?act=ST&f=3&t=12231&st=30.
Может есть какие-либо размышления по поводу упрощения картинки? Я пробовал понижать яркость, так проще её исследовать, но найти границу между двумя выпуклостями становится тяжелее ![]() |