Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Алгоритм нахождения [Delphi, C++ Builder, Windows]


Страницы:   1 2 3

Pavelius ©   (2004-04-14 16:42:00) 

Так как этот форум был раньше и по алгоритмам, то вопрос такой.

Существует следующая задача.


Есть у меня на изображении закрашенная окружность.
Мне необходимо найти ее приблизительный радиус и центр.
Окружность может быть плохого качества (копия на копире),
недостаточная закрашенность всей окружности.


Помогите пожалуйста с алгоритмами для этой задачи.


KA_   (2004-04-20 15:23:00) [1]

>wiz ©   (20.04.04 13:59) [46]

ИМХО, такое сглаживание сильно зависит от зашумленности изображения. Лучше, наверное, использовать преобразование Фурье над полученной гистограммой и отбросить шумы с нее.


wiz   (2004-04-20 13:59:00) [2]

2KA_:

в предложеной проге я как раз сглаживаю полученные гистограммы, считаю "средний шум" и вычитаю его...


KA_   (2004-04-20 09:09:00) [3]

>wiz ©   (19.04.04 20:01) [44]

Спасибо. А то я напугался :)

>Этот способ (конечно) даёт большую ошибку

В принципе можно получить достаточно хорошие результаты, если перед построением этих гистограмм подавить шум на картинке и сами гистограммы обработать каким-нибудь образом (ну хотя бы сгладить)


wiz   (2004-04-19 20:01:00) [4]

2 KA_:

профильные диаграммы - довольно тупая весчь: берём некий массив (AxB), усредняем по одной координате и получаем массив 1xB или Ax1. В нём уже довольно легко определить нужное нам (т.к. одномерный случай). Этот способ (конечно) даёт большую ошибку, и всерьез может использоваться только как первая "пристрелка", чтобы более сложные алгоритмы стартовали не с "нуля".

Способ взят на вооружение из некой книги по аппроксимации (названия и автора уже не помню - давно было). Там правда они imho назывались немного по другому (или так как я их обозвал, или "покоординатные гистограммы", в общем - не помню :] )


KA_   (2004-04-18 16:34:00) [5]

>wiz ©   (15.04.04 21:29) [38]

А что такое профильные диаграммы?
Может подскажешь ссылки?
Спасибо.


KA_   (2004-04-17 15:34:00) [6]

>sergey_shandar   (17.04.04 07:44) [41]

МНК это замечательно, но проблема в том, чтобы получить для него данные - массив точек, например. В зависимости от условий - состояния изображения, топологии фигуры и т.п. предобработка картинки и нахождение контура объекта может быть достаточно сложной задачей. Но не обязательно ведь привязываться на контур, т.е. массив точек. Есть масса других методов, которые позволят с большой точностью определить положение объекта (если его топология извесна). Часто при этом можно даже отказаться (или почти отказаться) от предобработки изображения.


sergey_shandar   (2004-04-17 07:44:00) [7]

Если примитив хорошо описываеться аналитически и можно решить МНК для него, то все равно. Прямая линия и окружность IMHO легче чем  квадрат :-)

Не мастер. :-)


Pavelius   (2004-04-16 14:33:00) [8]

Уважаемые мастера, что повашему проще находить: окружность или другие примитивы ?


Pavelius   (2004-04-16 08:37:00) [9]

to wiz

see to email


wiz   (2004-04-15 21:29:00) [10]

2 Pavelius:

поиск одинокого круга на тестовом изображении. версия нулевая:

http://wad-fox.chat.ru/im_searcher.zip

Для поиска координат круга использованы профильные гистограммы и метод моментов. Для поиска радиуса использовано "эдакое нечто", что я пока сам не могу классифицировать :)

Алгоритм отвратительно работает в случае отрезки части круга, но это можно пофиксить дальнейшими "уточняющими" алгоритмами (чем я займусь, если это будет интересно "заказчику").


smb   (2004-04-15 20:59:00) [11]

http://smb.hotmail.ru/files/spsearch2.exe
качайте исходник. работает иногда криво, файлы, которые тестировал там же. можно выбрать цвет и расхождение, или как оно там называется, короче цвет+-расхождение. для начала расчета нажать на картинку. радиус будет на заголовке формы.
зы. говорите, что хотите - люблю когда на меня гонят :)


Pavelius   (2004-04-15 16:13:00) [12]

to sergey_shandar
Спасибо за указание в каком направлении надо двигаться


sergey_shandar   (2004-04-15 14:04:00) [13]

На С++ за вознаграждение можно реализовать алгоритм. В не зависимости от ответа, идея здесь http://www.rsdn.ru/Forum/Message.aspx?mid=607696и здесь http://www.rsdn.ru/Forum/Message.aspx?mid=607412.


Pavelius   (2004-04-15 13:39:00) [14]

to KA_

see to EMail


KA_   (2004-04-15 12:57:00) [15]

>Pavelius ©   (15.04.04 12:47) [32]

Большая окружность или нет? Много места она занимает на этом куске 10х10?


Pavelius   (2004-04-15 12:47:00) [16]

to ALL
Если есть еще какие то вопросы по задаче, задавайте


KA_   (2004-04-15 11:47:00) [17]

>wiz ©   (15.04.04 10:16) [20]

В такой простой задаче можно добиться уверенного распознавания даже при больших значениях сигнал/шума, тем более, что шум скорее всего белый.


KA_   (2004-04-15 11:43:00) [18]

Кстати, есть еще несколько методов поиска площадных объектов на растре.
1. Можно использовать преобразование Хаффа (Hough). Но это достаточно ресурсоемказ задача - работать будет медленно, хотя зависит от конкретных условий распознавания.
2. Если круг маленький (занимает скажем 10% от площади картинки), то пожно применить пирамидальное преобразование растра.


KA_   (2004-04-15 11:40:00) [19]

>Pavelius ©   (15.04.04 11:38) [28]

О! Я не все читал! Здесь и деньги дают :)
За 50 баксов сварганю - пиши в мыло :)


Pavelius   (2004-04-15 11:38:00) [20]

На реализацию у меня просто нет времени. Вот я Вас уважаемые и прошу, да к тому же за вознаграждение.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо