![]() |
|
|
![]()
|
|
| Geniy00 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
Добрый вечер.
Мне нужно составить программу которая ищет графические примитивы на изображении(в данном случае линии) Я хотел бы уточнить некоторый детали в преобразовании Хафа. На сколько я все правильно понял: 1)Сначала мы должны сделать изображение монохромным(бинарным). Все черный точки будут точками интереса(берем пример в котором линия черным цветом). 2)Следующим шагом будет заполнение «фазового пространства» (это будет какаето матрица АхВ). Каждой точке «фазового пространства» будет отвечать прямая на рисунке. Если точки лежат на одной прямой то счетчик матрицы будет возростать. Прямую на плоскости можно задать формулою: R=x * cos § + y * sin § , где R – длина перпендикуляра, опущенного с начала координат. § - угол между перпендикуляром и ОХ x,y – координаты точки. Теперь вопросы: 1) Наша задача имея декартовую систему координат и какоето изображение на ней, заполнить матрицу с "фазового пространства". Тоесть какаето ячейка становится на 1 больше. Я так понимаю это делается по формуле x * cos § + y * sin § - R = 0 ?? (, где R – длина перпендикуляра, опущенного с начала координат. § - угол между перпендикуляром и ОХ x,y – координаты точки.) Каким образом, обясните пожайлуста. (мы в этой формуле знаем только x i y) Пример: есть какието точки с координатами (x1,y1), (x2,y2), (x3,y3). Как проверить лежат ли они на одной прямой? 2) Каким способом нужно перебирать точки? А) Проводим прямые поочередно через любые две точки(Через 2 точки можно провести только одну прямую), и так надо перебрать все точки? А если точек много это будет очень долго? Или там не обязательно перебирать все? Б) Проводим через одну точку большое количество прямых, и есть вероятность, что на какуето из этого множества прямых попадут еще точки? Не факт же что попадет, или если размерность матрицы подберется побольше то точка сама попадет? В) Какой варинт вы бы посоветовали? P.S. Пробывал розобрать по литературе, в поиске на форуме ничего интересного не нашел. Писать программу собираюсь на CBuilder'e |
|||
|
||||
| esperant0 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 714 Регистрация: 20.5.2005 Репутация: 4 Всего: 14 |
"На сколько я все правильно понял:
1)Сначала мы должны сделать изображение монохромным(бинарным " В начале ищутся все границы edges. -------------------- Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором а затем стерто и которое он - пользователь не мог видеть. |
|||
|
||||
| Geniy00 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 9.5.2007 Репутация: нет Всего: нет |
Края надо находить на фотографии например комнаты или какогото дома. А у меня в задании приблизительно так: есть рисунок например с линией, кругом, елипсом, прямоугольником, какимто не значительным шумом. (по сути это уже и есть края) |
|||
|
||||
| TanchikVK |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 22.2.2010 Где: Киров Репутация: нет Всего: нет |
У меня те же самые вопросы. Есть ли на форуме человек, который разбирается в алгоритме Hough Transform? Помогите бедной студентке. Реализовывать поиск графических примитивов собираюсь на Delphi. |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |