Russian Qt Forum
Ноябрь 25, 2024, 16:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Распознавание объекта на снимке  (Прочитано 10655 раз)
nikeo
Гость
« Ответ #15 : Декабрь 18, 2012, 22:00 »

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

Еще интересно, как Ваш алгоритм работает с ответвлениями и внутренними контурами (там вроде островков нечто проглядывается)?. Кроме того, для реки в данном случае не получится замкнутого контура, выходит начальную точку нужно указывать для каждого из берегов?

Вы меня не поняли,я не пытаюсь размытием вывести контур,я пытаюсь увеличить контрастность изображения)

Нет,алгоритм работает со всеми ответвлениями!!!я не задаю точку берега,я задаю характеристики "классификации",по которой и происходит накопление "классификаций".
Я задаю пиксел,получаю с него яркостные характеристики по 3 спектрам и общую яркость.После,делаю обход по соседним пикселам,и если они удовлетворяют "классификации",то записываю их координаты в вектор.Такой алгоритм,позволяет "распознать" все водные объекты на снимке,и погрешность его расчета,по большей степени,зависит от качества снимка.
Для максимального результата,нужно привести статистику по множеству снимков,сделанных с одной аппаратуры.Тогда качество распознавания увеличится, и можно использовать автоматическое определение точки отсчета.

Моя полная задача делится на три блока:
1.Определение координат спутника на момент съемки.
2.Коррекция геопространственной привязки снимка.
3.Тестовый модуль(Отображение полученных результатов на Google Maps).

Так что,для меня распознавание реки,это лишь часть всей программы.)И того что я сделал,уже достаточно)но для себя,я не хочу делать все "тяп-ляп")
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #16 : Декабрь 19, 2012, 09:04 »

Судя по Вашему умению напускать туман - задатки научного работника налицо, и кандидатская диссертация не за горами Улыбающийся

Простой человек сказал бы без затей типа RGB, grayscale, а у Вас
яркостные характеристики по 3 спектрам и общую яркость.
Наверное чтобы при случае задавить оппонента знаниями о спектре и.т.п.

Так что,для меня распознавание реки,это лишь часть всей программы.)И того что я сделал,уже достаточно)но для себя,я не хочу делать все "тяп-ляп")
Похвально, но давайте сосредоточимся на контрасте. Чем Вас не устраивают простейшие модуляторы, напр (псевдокод)
Код
C++ (Qt)
brightness = GetBrightness(pixel);
if (doPow)
brightness = pow(brightness, amount);
if (doHermit)
brightness = Hermite(brightness);
SetBrightness(pixel, brightness);
 
Непонимающий


Записан
Dancing_on_water
Гость
« Ответ #17 : Декабрь 19, 2012, 10:49 »

2Igors, уж лучше иногда молчать, чем говорить.
nikeo ошибся в терминологии, вместо 3 спектров, скорее всего, надо читать три светофильтра.

2nikeo
Т.е. у вас на руках по сути три кадра? Тогда лобовое решение: с помошью openCV ищем контура изображений на кадрах. А далее фильтруем по размеру, по положению (контура на всех трех кадрах должны быть более-менее близко расположены), можно, наверно, задать условие, чтоб существовал второй контур были более-менее параллельный.

Но если честно, задача мне видется по меньше мере странной. Чтоб получить данные со спутника мы должны знать его орбиту. Это решается приемником GPS\Глонасс на борту самого аппарата + наземные станции наблюдения. Далее, зная орбиту и зная время съемки кадра, мы знаем какой участок мы снимаем. Или точность привязки нужна до угловых секунд?


« Последнее редактирование: Декабрь 19, 2012, 10:52 от Dancing_on_water » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #18 : Декабрь 19, 2012, 11:27 »

2Igors, уж лучше иногда молчать, чем говорить.
Это совершенно верно. К чему приплетать openCV,  приемник GPS\Глонасс на борту аппарата (?), параллельность контуров и многое другое - если человек спрашивал как повысить контраст картинки?  Улыбающийся
Записан
nikeo
Гость
« Ответ #19 : Декабрь 20, 2012, 17:19 »

2Igors, уж лучше иногда молчать, чем говорить.
nikeo ошибся в терминологии, вместо 3 спектров, скорее всего, надо читать три светофильтра.

2nikeo
Т.е. у вас на руках по сути три кадра? Тогда лобовое решение: с помошью openCV ищем контура изображений на кадрах. А далее фильтруем по размеру, по положению (контура на всех трех кадрах должны быть более-менее близко расположены), можно, наверно, задать условие, чтоб существовал второй контур были более-менее параллельный.

Но если честно, задача мне видется по меньше мере странной. Чтоб получить данные со спутника мы должны знать его орбиту. Это решается приемником GPS\Глонасс на борту самого аппарата + наземные станции наблюдения. Далее, зная орбиту и зная время съемки кадра, мы знаем какой участок мы снимаем. Или точность привязки нужна до угловых секунд?




Во-первых,да,снимок есть в разных спектрах!
Во-вторых,данные орбиты спутника,можно получить к примеру из TLE,а наземные станции и GPS нужны для корректировки орбиты!
и вообще,если вы не знаете,как осуществляется привязка,то не пытайтесь угадать;)то что делаю я со снимком - КОРРЕКЦИЯ привязки,так как всегда есть погрешность в измерении положения спутника.
Записан
nikeo
Гость
« Ответ #20 : Декабрь 20, 2012, 17:24 »

Судя по Вашему умению напускать туман - задатки научного работника налицо, и кандидатская диссертация не за горами Улыбающийся

Простой человек сказал бы без затей типа RGB, grayscale, а у Вас
яркостные характеристики по 3 спектрам и общую яркость.
Наверное чтобы при случае задавить оппонента знаниями о спектре и.т.п.

Так что,для меня распознавание реки,это лишь часть всей программы.)И того что я сделал,уже достаточно)но для себя,я не хочу делать все "тяп-ляп")
Похвально, но давайте сосредоточимся на контрасте. Чем Вас не устраивают простейшие модуляторы, напр (псевдокод)
Код
C++ (Qt)
brightness = GetBrightness(pixel);
if (doPow)
brightness = pow(brightness, amount);
if (doHermit)
brightness = Hermite(brightness);
SetBrightness(pixel, brightness);
 
Непонимающий




Я вас умоляю,я сам мало что знаю о спектрах)))я просто называю вещи своими именами!да и какого оппонента мне давить и где???))Тут что ли???я ожидаю ответы на поставленный вопрос,а не критики моих научных знаний)

Спасибо за код,меня он вполне устраивает!я по тому и спрашиваю,потому что не знаю)
Записан
vic_prog
Гость
« Ответ #21 : Декабрь 21, 2012, 09:31 »

Я предлагаю посмотерть в сторону сегмементации по текстурным признакам. Подобрать признаки, которые подходят к воде. Там только одна проблема - в зависимости от размера масок будет определяться четкость границ.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #22 : Декабрь 21, 2012, 11:18 »

я ожидаю ответы на поставленный вопрос,а не критики моих научных знаний)
А так получается потому что ставите Вы вопрос нечетко, туманно. Какую цветовую модель Вы используете? Если просто RGB - так и скажите, если свою собственную - кратко изложите какую. Нет ничего плохого что Вы упоминаете о др аспектах Вашей работы (TLE. GPS и.т,п.), но так Вы вызываете/поощряете весьма обширную дискуссию "обо всем" и, возможно, Ваш изначальный вопрос о контрасте будет забыт.

Возвращаясь к контрасту - исходя из предъявленного имеджа лично я не вижу что даст контраст и др фильтры, (как впрочем и своя цветовая модель). Река и так выделяется хорошо, что легко проверить напр в PhotoShop ("magic" tool)
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.233 секунд. Запросов: 22.