Kationchic
Гость
|
|
« : 10-05-2008 06:53 » |
|
Возникла такая проблема - после выделения контура на изображении появляются разрывы. Их нужно устранить. Изображение из себя представляет груду камней. По идее нужно пройтись по замкнутому контуру и понять тенденцию по которой он идет, чтоб можно было его продолжить в месте разрыва... вот не знаю с какого края подходить к проблеме... помогите, пожалуйста...
|
|
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #1 : 10-05-2008 07:43 » |
|
1. Можно ли увидеть схемку, которая показывает именно этот разрыв. (можно приатачить к сообшению) 2. Как именно ты храниш сведения о контуре?
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
Kationchic
Гость
|
|
« Ответ #2 : 10-05-2008 13:08 » |
|
Ну скажем вот изображение... разрывы почти в каждом контуре...
|
1.JPG (74 Кб - загружено 913 раз.)
|
|
Записан
|
|
|
|
marat_
Шеф-повар
Опытный
Offline
|
|
« Ответ #3 : 10-05-2008 13:13 » |
|
как это связано с делфи? это обработка изображений. ищи алгоритмы, может изображение перед контуризацией обработать нужно
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #4 : 10-05-2008 14:31 » |
|
Делфи здесь понятно, что не причем, Понятно что среда разработки Делфи
Решение вижу, например так Продолжить контур до его замкнутости, определив изначально какую-то дельту для разрыва.
|
ex.jpg (7.73 Кб - загружено 900 раз.)
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Kationchic
Гость
|
|
« Ответ #5 : 10-05-2008 14:33 » |
|
Вооот, а как продолжить? Надо как-то вычислить по какой кривой он идет, чтоб продолжать!
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #6 : 10-05-2008 14:40 » |
|
известным тебе методом попытаться построить (апроксимировать) кривую до момента разрыва.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Kationchic
Гость
|
|
« Ответ #7 : 10-05-2008 14:40 » |
|
в этом и проблема - не совсем понимаю как это сделать
|
|
|
Записан
|
|
|
|
marat_
Шеф-повар
Опытный
Offline
|
|
« Ответ #8 : 10-05-2008 14:44 » |
|
Sla, аппроксимация гиблое дело. обойти картинку, найти начало контура, пройти по контуру, найти окончание, соединить прямой линией. вот только там кучи пересечений. Kationchic, ищи алгоритмы. я когда занимался распознаванием отпечатков пальцев кучи видел.
|
|
|
Записан
|
|
|
|
zubr
Гость
|
|
« Ответ #9 : 10-05-2008 14:47 » |
|
А если попробовать так: Определить крайние точки разрыва и соединить их кривой безье, дельту выбирать в зависимости от расстояния между точками разрыва и размером (расстоянием по осям через определенный угол) камня.
|
|
|
Записан
|
|
|
|
marat_
Шеф-повар
Опытный
Offline
|
|
« Ответ #10 : 10-05-2008 14:48 » |
|
zubr, тоже нормуль. или сплайн но тут ещё бы скелетизация не помешала бы...
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #11 : 10-05-2008 14:49 » |
|
Искать алгоритмы, когда не понимаешь что искать - глупо. Распознавание - возможно. Но, в данном случае не все еще запущенно, и можно открыть учебник по матану, и посмотреть в сторону рядов.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
marat_
Шеф-повар
Опытный
Offline
|
|
« Ответ #12 : 10-05-2008 14:52 » |
|
Sla, не путай народ. тут применение рядов прямо скажем не очевидно. вот призводные частные и операторы другое дело. алгоритмы все так и называются - выделение контуров, получение скелета изображения и тд. журнал раньше хороший был - автометрия кажется. статьи сойфера и его учеников поискать бы не мешало.
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #13 : 10-05-2008 14:57 » |
|
marat_, вот видишь, ты уже назвал несколько вариантов алгоритмов, а до этого?
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
marat_
Шеф-повар
Опытный
Offline
|
|
« Ответ #14 : 10-05-2008 14:59 » |
|
Sla, в который раз за сегодня тебя не понял
|
|
|
Записан
|
|
|
|
Kationchic
Гость
|
|
« Ответ #15 : 10-05-2008 15:10 » |
|
спасибо за идеи... правда наверное для начала скелетизирую...
|
|
|
Записан
|
|
|
|
marat_
Шеф-повар
Опытный
Offline
|
|
« Ответ #16 : 10-05-2008 15:21 » |
|
тогда уж сразу и шумы дави сглаживающим фильтром каким-нибудь.
а что вообще за задача?
|
|
|
Записан
|
|
|
|
Kationchic
Гость
|
|
« Ответ #17 : 10-05-2008 15:53 » |
|
шумы уже гладила... теперь только при распозновании контуров наверное лишнее отсекать... а задача - нужно вычислить относительный размер камней
|
|
|
Записан
|
|
|
|
marat_
Шеф-повар
Опытный
Offline
|
|
« Ответ #18 : 10-05-2008 23:42 » |
|
тааак... вот это довольно сложно. вычислить размеры камней... а может и просто , смотря как подойти. прежде шумы убрать, потом бинарный препарат, оконтурить, снова отфильтровать, скелетизировать. получим нечто. потом у этого нечто необходимо контуры замкнуть. тут можно обычной линией. просто и на размер не повлияет. у тебя там разрывы небольшие. потом проходом определить размер. примерно так: ты должна перемещать сканер пикселя до тех пор, пока он не пересечёт контур (белый цвет). тогда будем считать, что ты вошла в контур, как бы находишься внутри камня. здесь можно пофантазировать. можно просто посчитать всё чёрные писели, как единицу площади (писель он же квадратный, вот и будем считать, что один пиксел - это один квадратный ...метр, по твоему усмотрению), а там и общие размеры оценить несложно. а можно просчитать наибольшие длину камня и высоту. как параметры эллипса. посмотри в инете "определение размеров объекта" в "распознавание образов". такими вещами часто занимаются при аэрофотосъёмке, съёмке со спутника и тд.
|
|
« Последнее редактирование: 11-05-2008 00:00 от marat_ »
|
Записан
|
|
|
|
Kationchic
Гость
|
|
« Ответ #19 : 11-05-2008 04:15 » |
|
Если честно, я уже в фотошопе контуры замкнула и размер вычислила... просто прошлась по изображению, был счетчик сегментов, переходя к новому камню я его увеличивала... если попадала на границу, то это был 0. Потом просто прошлась по матрице и посчитала количество одинаковых цифор =) Выводила её - вроде все правильно... Главное сейчас контур программно замкнуть граммотно.
|
|
|
Записан
|
|
|
|
|