Добро пожаловать, гость
:: алгоритмы  и методы :: :: олимпиадные задачи :: :: связь :: :: о сайте :: :: форум ::


Создать новую тему Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.10.2010, 20:51
Новичок

Отправить личное сообщение для TacoBell Посмотреть профиль Найти все сообщения от TacoBell
 
Регистрация: 20.10.2010
Сообщений: 11

Поиск ладони
Доброе время суток! Есть изображение с ладошкой:

Как найти ладонь на изображении? (С++, OpenCV) Понимаю, что нужно перевести в градации серого само изображение, сделать бинаризацию, найти контуры и закрасить разными цветами... Но вот дальше не знаю.. Или может алгоритм изначально не верный? Прошу у вас помощи...
Ответить с цитированием
  #2  
Старый 20.10.2010, 21:09
гость

 
Сообщений: n/a

Только на этом изображении найти или же алгоритм должен быть более общим?
Ответить с цитированием
  #3  
Старый 20.10.2010, 21:12
гость

 
Сообщений: n/a

Сообщение от TacoBell Посмотреть сообщение
перевести в градации серого само изображение,
имхо это как раз категорически нельзя делать. цвет несет очень мощный сигнал в данном случае
Ответить с цитированием
  #4  
Старый 20.10.2010, 21:59
Новичок

Отправить личное сообщение для TacoBell Посмотреть профиль Найти все сообщения от TacoBell
 
Регистрация: 20.10.2010
Сообщений: 11

Сообщение от гость Посмотреть сообщение
Только на этом изображении найти или же алгоритм должен быть более общим?
Общим. Суть вот в чем: поток изображений поступает с веб камеры. Алгоритм должен, пока, выделить контур ладони пропустив другие объекты.

Сообщение от гость Посмотреть сообщение
имхо это как раз категорически нельзя делать. цвет несет очень мощный сигнал в данном случае
Кхм.. Я как раз думал над этим... НО потом отказался от идеи фильтра по цвету т.к. подумал, что Афроамериканцы не смогут пользоваться прогой xD Хотя, в данном случае, это не имеет значения (учебный проект). Тогда, получается, нужно выбрать планку цвета +- какое-то кол-во пикселей и отсечь другие цвета?
Ответить с цитированием
  #5  
Старый 20.10.2010, 23:08
Пользователь

Отправить личное сообщение для lordKelvin Посмотреть профиль Найти все сообщения от lordKelvin
 
Регистрация: 25.01.2010
Сообщений: 51

Можно слегка упростить задачу, повесив на руку яркие и легко распозноваемые маркеры. Придется брать качественную вебкамеру, чтобы избежать эффекта замедления из матрицы.=) И анализ изображений ёмкий ко времени процесс, готовься налегать на оптимизацию.
Ответить с цитированием
  #6  
Старый 20.10.2010, 23:20
Новичок

Отправить личное сообщение для TacoBell Посмотреть профиль Найти все сообщения от TacoBell
 
Регистрация: 20.10.2010
Сообщений: 11

Сообщение от lordKelvin Посмотреть сообщение
Можно слегка упростить задачу, повесив на руку яркие и легко распозноваемые маркеры. Придется брать качественную вебкамеру, чтобы избежать эффекта замедления из матрицы.=) И анализ изображений ёмкий ко времени процесс, готовься налегать на оптимизацию.
Без оптимизации, конечно, никак... Но и хотелось бы без маркеров. Может есть какие-то идеи на эту тему?
Ответить с цитированием
  #7  
Старый 21.10.2010, 05:44
Пользователь

Отправить личное сообщение для lordKelvin Посмотреть профиль Найти все сообщения от lordKelvin
 
Регистрация: 25.01.2010
Сообщений: 51

Можно фильтром высчитать фон и искать двигающиеся предметы, вычитанием. Руку определять уже по контуру. Собственно, если есть гарантированный контраст с фоном, то можно сразу искать границу.
Ответить с цитированием
  #8  
Старый 21.10.2010, 07:17
Новичок

Отправить личное сообщение для TacoBell Посмотреть профиль Найти все сообщения от TacoBell
 
Регистрация: 20.10.2010
Сообщений: 11

Сообщение от lordKelvin Посмотреть сообщение
Можно фильтром высчитать фон и искать двигающиеся предметы, вычитанием. Руку определять уже по контуру. Собственно, если есть гарантированный контраст с фоном, то можно сразу искать границу.
Спасибо, но, однако, этот вариант мне не подходит: камера может тоже двигаться.
Ответить с цитированием
  #9  
Старый 21.10.2010, 20:36
Пользователь

Отправить личное сообщение для lordKelvin Посмотреть профиль Найти все сообщения от lordKelvin
 
Регистрация: 25.01.2010
Сообщений: 51

Как знать. Можно считать, что камера двигается медленнее руки и не постоянно. И пользоваться постоянным фоном, когда таковой имеется.
Ответить с цитированием
  #10  
Старый 21.10.2010, 20:50
Новичок

Отправить личное сообщение для TacoBell Посмотреть профиль Найти все сообщения от TacoBell
 
Регистрация: 20.10.2010
Сообщений: 11

Впринципе, вы совершенно правы... Так как это учебный проект, то, я думаю, будет достаточно принять положение камеры неизменным

P.S> А еще появилась идея. МОжно находить руку с помощью фильтра по цвету. Тогда, в начале работы программы, юзер должен закрыть своей ладонью большую часть обзора камеры и при этом нажать кнопку старт. Далее высчитывается среднее значение поверхности которая больше всего покрывает изображение (ладонь) и выбирается барьер бинаризации. Далее просто все остальное отсекается и остается черным цветом рука на белом фоне +- какие-то артефакты, которые можно легко убрать посчитав их площадь. Как думаете, покатит?

Последний раз редактировалось TacoBell, 21.10.2010 в 20:55.
Ответить с цитированием
Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра