2011-10-06 2 views
0

Я работаю над проблемой (на C++/opencv), в которой 4 пользователям нужно отличать друг от друга, используя информацию об идентификаторе, извлеченную из цвета кожи и функций в верхней части. Тем не менее, метод цвета кожи (в YCrCb) имеет очень низкую надежность, поскольку между тонами кожи нет большой разницы. Поэтому я пытаюсь извлечь из рук больше функций, таких как темные пятна и т. Д. Для этого я вычислил лапласиан изображений. результаты:Идентификация функции обработки изображения

http://imageshack.us/photo/my-images/818/afb1.jpg/ 
http://imageshack.us/photo/my-images/31/afb2i.jpg/ 
http://imageshack.us/photo/my-images/638/afb3.jpg/ 

Первые два изображения взяты из одной руки/человека. Второе изображение - это рука от другого человека. Как вы можете видеть, четкое яркое пятно видно на двух изображениях, которые представляют собой более темные пятна руки. Моя идея состояла в том, чтобы пробовать handcontour в маленьких квадратах и ​​находить для этих квадратов другие изображения. Впоследствии мы можем оценить, какое изображение имеет самые и самые высокие совпадения для данного изображения.

Однако я не могу найти алгоритм для поиска совпадений между образцом изображения и другим изображением. Я попробовал операцию cvMatchTemplate() (http://dasl.mem.drexel.edu/~noahKuntz/openCVTut6.html#Step%202) и meanShift, но результаты обоих методов были очень плохими.

Может кто-нибудь дать мне несколько советов?

+0

Вы уже разместили очень похожий вопрос под другим именем пользователя. Пожалуйста, отредактируйте этот вопрос с помощью новых идей и удалите его. –

+0

Возможный дубликат [Идентификация цвета кожи для обработки изображений] (http://stackoverflow.com/questions/7589394/image-processing-skin-color-identification) –

ответ

0

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

Vision-based hand pose estimation: a review

видео, например, с реализацией OpenCV:

http://www.youtube.com/watch?v=uETHJQhK144

После того, как у вас есть оценка стороны представляют , то у вас есть основа для изоляции и сравнения одного и того же региона каждой руки (например, область между суставами и запястьем). Затем вы можете начать применять общие методы сопоставления изображений. Применение примера Eigenfaces («Eigenhands» в вашем случае) может быть вашим лучшим выбором. Собственные знания преподаются в начинающих курсах компьютерного зрения, а тонны информации доступны в Интернете.

+0

Спасибо за информацию, я создал ручную модель, но теперь мне нужны фильтры для извлечения небольших уникальных деталей из рук, таких как темные пятна. Как я объяснил в своем первом сообщении, лапласиан обнаружил многие из этих функций, но я думаю, мне нужны другие фильтры, чтобы сделать эти данные более заметными, прежде чем я смогу их отслеживать. Я попробовал фильтры градиента и sobel, но некоторые советы были бы хороши. Кроме того, мне кажется, мне нужен алгоритм, который бы соответствовал этим функциям в других изображениях (например, сравнивая небольшой образец с черным пятном, извлеченным из руки в другие руки). Я не сейчас, если есть конкретный алгоритм. – user170353

+0

Да, если у вас есть область руки, которую вы хотите отслеживать * правильно зарегистрирована и преобразована *, у вас есть основа для соответствия изображения. Обучение классификатору Хаара является «правильным», но очень сложным. Применение примера Eigenfaces («Eigenhands» в вашем случае) может быть вашим лучшим выбором. Собственные знания преподаются в начинающих курсах компьютерного зрения, а тонны информации доступны в Интернете. Если вы нашли мой ответ полезным, пожалуйста, поддержите или примите. :) Благодаря –

Смежные вопросы