Russian Qt Forum
Ноябрь 25, 2024, 07:45
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Распознавание объекта на снимке
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Распознавание объекта на снимке (Прочитано 10649 раз)
nikeo
Гость
Распознавание объекта на снимке
«
:
Декабрь 16, 2012, 18:40 »
Всем добрый вечер!
Если кто сталкивался,помогите в разработке алгоритма по определению части реки на снимке.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Распознавание объекта на снимке
«
Ответ #1 :
Декабрь 16, 2012, 19:37 »
Фраза "не изобретайте велосипед" употребляется не к месту примерно в 95% случаев - но здесь Вы попали в оставшиеся 5%
Здесь надо сначала читать теорию распознавания образов, подобрать подходящий алгоритм, а потом уж (может быть) и свое что-то добавить.
Записан
Nagdiel
Гость
Re: Распознавание объекта на снимке
«
Ответ #2 :
Декабрь 17, 2012, 08:35 »
Вы как то нечетко задачу формулируете. Если Вы хотите выделить пиксели, которые соответствуют реке на снимке, можно попробовать один из методов сегментации. Идеально выделить обычно не получается, возникают разного рода артефакты типа "ложных тревог" или разрывов. С ними можно бороться при помощи алгоритмов математической морфологии.
Основы неплохо написаны в книге Р. Гонсалес, Р. Вудс "Цифровая обработка изображений"
Записан
nikeo
Гость
Re: Распознавание объекта на снимке
«
Ответ #3 :
Декабрь 17, 2012, 22:47 »
Все эти книжки я уже читал)основы знаю...у меня реализован метод по перепаду яркостей на снимке...но для реки это не подходит(
Записан
QuAzI
Гость
Re: Распознавание объекта на снимке
«
Ответ #4 :
Декабрь 18, 2012, 00:44 »
Попробуй увеличить контрастность, тогда река будет более... выделена от окружающих объектов... тогда должно зашуршать, хотя конечно весьма лажовая задача... нужно ещё смотреть, как обход контура делается... когда-то мне нужно было шуршить контуры детали отсканированной... нахавался геммора даже на относительно чистом скане.
Записан
nikeo
Гость
Re: Распознавание объекта на снимке
«
Ответ #5 :
Декабрь 18, 2012, 02:22 »
Вообщем то прогресс пошел
Теперь хотел бы попросить помощи в том,как увеличить контрастность...
На сколько я понимаю,нужен фильтр размытия,потом из оригинала вычесть размытую...
А вот как это делать,я пока не понял.
"Матрица свертки" и тд и тп - правильное направление?)
P.S:извиняюсь за такой способ задания вопросов!!!я в этом мало чего понимаю,приходится писать диплом,а эта часть совсем не по специальности,так что приходится изучать самому.
Записан
nikeo
Гость
Re: Распознавание объекта на снимке
«
Ответ #6 :
Декабрь 18, 2012, 02:26 »
Цитата: QuAzI от Декабрь 18, 2012, 00:44
Попробуй увеличить контрастность, тогда река будет более... выделена от окружающих объектов... тогда должно зашуршать, хотя конечно весьма лажовая задача... нужно ещё смотреть, как обход контура делается... когда-то мне нужно было шуршить контуры детали отсканированной... нахавался геммора даже на относительно чистом скане.
вот вот,как раз над этим и думаю,так как надо бы от заданной точки идти в 4х направлениях(исходя из разработанного мной алгоритма)
Я накапливаю множество точек на снимке,где яркостные характеристики имеют малые различия(оцениваю по общей яркости пикселя,в котором преобладает синий спектр).
Записан
QuAzI
Гость
Re: Распознавание объекта на снимке
«
Ответ #7 :
Декабрь 18, 2012, 07:51 »
Я в своё время использовал круговой обход с настраиваемым шагом. На всяких мусорных артефактах близких к границе можно получить жестокий косяк, вплоть до зацикливания
Алгоритмом не поделишься?
Записан
Nagdiel
Гость
Re: Распознавание объекта на снимке
«
Ответ #8 :
Декабрь 18, 2012, 08:56 »
Цитата: nikeo от Декабрь 18, 2012, 02:22
Теперь хотел бы попросить помощи в том,как увеличить контрастность...
На сколько я понимаю,нужен фильтр размытия,потом из оригинала вычесть размытую...
А вот как это делать,я пока не понял.
"Матрица свертки" и тд и тп - правильное направление?)
Если речь о том, чтобы использовать фильтр с фиксированной апертурой, например, гауссиан, то направление верное. Размытие в этом случае реализуется путем двумерной свертки изображения с маской фильтра. Если затем вычесть из исходного изображения обработанное фильтром, получится "усилить" перепады яркости.
Правда, непонятно зачем изобретать колесо. Для выделения границ есть метод Canny, например. Там как раз с размытия и начинают. Лично мне, кажется, что контуры лучше выделять, а не прослеживать, так как прослеживание сильно зависит от локальных особенностей изображения и чувствительно к накоплению ошибок.
Записан
nikeo
Гость
Re: Распознавание объекта на снимке
«
Ответ #9 :
Декабрь 18, 2012, 09:11 »
Цитата: Nagdiel от Декабрь 18, 2012, 08:56
Цитата: nikeo от Декабрь 18, 2012, 02:22
Теперь хотел бы попросить помощи в том,как увеличить контрастность...
На сколько я понимаю,нужен фильтр размытия,потом из оригинала вычесть размытую...
А вот как это делать,я пока не понял.
"Матрица свертки" и тд и тп - правильное направление?)
Если речь о том, чтобы использовать фильтр с фиксированной апертурой, например, гауссиан, то направление верное. Размытие в этом случае реализуется путем двумерной свертки изображения с маской фильтра. Если затем вычесть из исходного изображения обработанное фильтром, получится "усилить" перепады яркости.
Правда, непонятно зачем изобретать колесо. Для выделения границ есть метод Canny, например. Там как раз с размытия и начинают. Лично мне, кажется, что контуры лучше выделять, а не прослеживать, так как прослеживание сильно зависит от локальных особенностей изображения и чувствительно к накоплению ошибок.
никто и не изобретает велосипед)такой метод я и имел ввиду)меня вот лично вполне результат устраивает,и думаю научника с комиссией тоже устроит.
Но меня мой ум пытливый выводит...для накопления,нужно начальную точку задать,а я хотел бы,чтобы он ее сам нашел(
Да и большинство методов,строятся на статистике,а у меня к сожалению нету времени ее выводить..
Записан
nikeo
Гость
Re: Распознавание объекта на снимке
«
Ответ #10 :
Декабрь 18, 2012, 09:13 »
Цитата: QuAzI от Декабрь 18, 2012, 07:51
Я в своё время использовал круговой обход с настраиваемым шагом. На всяких мусорных артефактах близких к границе можно получить жестокий косяк, вплоть до зацикливания
Алгоритмом не поделишься?
Он пока в доработке,как доделаю,обязательно скину.
Записан
Nagdiel
Гость
Re: Распознавание объекта на снимке
«
Ответ #11 :
Декабрь 18, 2012, 09:26 »
А насколько сильно качество работы алгоритма зависит от выбора начальной точки?
Записан
Nagdiel
Гость
Re: Распознавание объекта на снимке
«
Ответ #12 :
Декабрь 18, 2012, 09:37 »
С точки зрения постановки вопроса, чтобы выбрать начальную точку на границе реки, нужно собственно знать, где находится эта самая граница, или хотя бы ее часть. В таком случае можно использовать что-нибудь простенькое для предварительного выделения контуров, затем выбирать по каким-либо признакам подходящий контур и точку на нем. А дальше использовать Ваш алгоритм для более точного прослеживания границы реки на снимке.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Распознавание объекта на снимке
«
Ответ #13 :
Декабрь 18, 2012, 10:53 »
Цитата: nikeo от Декабрь 18, 2012, 02:22
Теперь хотел бы попросить помощи в том,как увеличить контрастность...
На сколько я понимаю,нужен фильтр размытия,потом из оригинала вычесть размытую...
А вот как это делать,я пока не понял.
"Матрица свертки" и тд и тп - правильное направление?)
После вычитания размытой все значения цветов сильно изменятся - что может повести к новым проблемам. Вообще не очень ясно что у Вас делается на данный момент - вскользь упоминаете о перепаде контрастности - и все. Так трудно что-то советовать.
Ok, с позиций "велосипедизма" - зачем тот контраст/перепад? Попробуем думать непредвзято (пусть наивно). Цвет реки хорошо заметен и колеблется в относительно небольшом диапазоне - ну и выделим все пиксели что соответствуют этому цвету +/- какая-то дельта. Далее - река должна иметь какую-то протяженность, Тестируем каждый полученный тег пикселей по длине x/y и, возможно, диагоналям. Выбрасываем теги что слишком малы. Это можно сделать за день и посмотреть - может всего хватает. А нет - по результатам искать как улучшить
Записан
Nagdiel
Гость
Re: Распознавание объекта на снимке
«
Ответ #14 :
Декабрь 18, 2012, 11:24 »
Согласен с Igors, сегментация тут подходит больше. Река действительно "хорошо" отделяется по цвету, а вот границы местами могут быть и размытыми. Сегмент (связная группа выделенных пикселей) с рекой, скорей всего, получится найти по максимуму площади. Если принципиально получить именно контурный препарат, то его после сегментации легко извлечь из бинарного изображения.
Еще интересно, как Ваш алгоритм работает с ответвлениями и внутренними контурами (там вроде островков нечто проглядывается)?. Кроме того, для реки в данном случае не получится замкнутого контура, выходит начальную точку нужно указывать для каждого из берегов?
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...