Я работаю над проблемой (в 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/
Первые два изображения с одной руки / человека.Второе изображение - рука другого человека.Как вы можете видеть, чистое яркое пятно видно на первом ладони двух изображений, которые представляют более темные пятна руки.Моя идея состояла в том, чтобы опробовать ручной контур на маленьких квадратах и найти эти квадраты на других изображениях.После этого мы можем оценить, какое изображение имеет наибольшее и максимальное совпадение для данного изображения.
Однако я не могу найти алгоритм для поиска совпадений между образцом изображения и другим изображением.Я попробовал операцию cvMatchTemplate () (http://dasl.mem.drexel.edu/~noahKuntz/openCVTut6.html#Step%202) и алгоритм meanShift, но результаты обоих методов были действительно плохими.
Может кто-нибудь дать мне несколько советов?