![]() |
|
![]() ![]() ![]() |
|
zaksys |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 31.5.2008 Где: Красноярск Репутация: нет Всего: нет |
Здраствуйте, поситители данного форума.
Для решения данной предлагается использовать такой алгоритм. 1. Бинаризуем изображение. 2. Находим пиксель белого цвета, что будет соответсвовать предположительному блику. 3. Двигаемся вправо, влево, вниз и вверх относительно этого пиксела. 4. Определяем границы области. 5. Используем алгоритм Хафа, при неизвестном радиусе. Проблема с 3 пунктом данного алгоритма. Если даже двигаться, таким образом как я написал, ничего хорошего не получается, и после 1 прохода не понятно куда двигаться. Подскажите как решить данную проблему. Это сообщение отредактировал(а) zaksys - 7.10.2010, 16:44 |
|||
|
||||
Pavia |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
zaksys,
А с чего вы взяли что блики имеют вид окружности? Не понимаю почему все любят Хафа? |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
думаю, для обсуждения решения этой задачи неплохо бы иметь какой-то рисунок
-------------------- qqq |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 7 Всего: 183 |
Найти все белые пикселы, связанные с данным, не вопрос - просто обходим соседей каждого белого пиксела, и собираем все белые. Немного усилий, чтобы не ходить кругами и все. Только имеет ли это белое пятно какое-то отношение к блику? Это зависит от исходного изображения, от метода (порога) бинаризации и т.д.
-------------------- ... |
|||
|
||||
zaksys |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 31.5.2008 Где: Красноярск Репутация: нет Всего: нет |
Нет просто для меня стоит такая первоначальная задача, конечно блики могут иметь любую форму. Добавлено @ 09:10
Ну собирем мы их, а что потом то с ними делать не совсем понятно. В это вся и загвоздка, я тут даже себе рисунок нарисовал с пикселями. Пример, вот такой, проходим мы изображение по строчно, в первой строке нету белых пикселей, во второй нету, в третьей тоже нету, четвертую проходим нашли белый пиксель, потом просматриваем сверху, он черный собственно, значит это граница. Потом просматриваем пиксели снизу, тоже для обнаружения черного пикселя, или просматриваем только ближаиший пиксель на расстоянии 1.(Это мой главный вопрос). Ну собственно таким же образом просматриваем пиксели слева и справа, от найденного. Собственно это все загоняется в массив, потом только не понятно, что с ним делать. Не понятно также как провести выделение белых областей, чтобы у нас показывались только границы. Также могу добавить, что кроме Хафа я допустим ничего не нашел. Собственно бинаризация уже работает, порог выбран равным 127. ![]() Подразумевается, что на этом изображении мы будем тестировать свою программу. Собственно изображение подрузумевается как блик, правда он далеко не круглый после бинаризации. Это сообщение отредактировал(а) zaksys - 8.10.2010, 09:12 |
||||
|
|||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 7 Всего: 183 |
Ну, оконтурить обнаруженное белое пятно можно методом жука, довольно простой алгоритм, кажется в форуме были упоминания.
А уж что делать с контуром - дело твое. Хочешь, окружностью его аппроксимируй. -------------------- ... |
|||
|
||||
zaksys |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 31.5.2008 Где: Красноярск Репутация: нет Всего: нет |
И что за метод такой жука? Ну да можно попробывать и аппроксимировать. Можно по подробнее в чем он вообще заключается, я ничего путнего не нашел. И на форуме тоже. Если вам не трудно киньте ссылучку пожалуйста. Это сообщение отредактировал(а) zaksys - 9.10.2010, 19:21 |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 7 Всего: 183 |
http://forum.vingrad.ru/forum/topic-261385...1%83%D1%80.html
http://forum.vingrad.ru/forum/topic-166483...y1229145/0.html И.т.д - ищи по слову "контур" Принцип очень простой - находим один из крайних пикселов и идем так, чтобы пятно было всегда слева (или справа). Вот и все. -------------------- ... |
|||
|
||||
zaksys |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 31.5.2008 Где: Красноярск Репутация: нет Всего: нет |
Большое спасибо за ссылки. Я искал по слову алгоритм, вот видать и не нашел ничего путнего. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |