Обработка изображений ... обратное вычитание - PullRequest
0 голосов
/ 21 марта 2011

У меня есть последовательность изображений, снятых с камеры. Изображения состоят из рук и окружения. Мне нужно удалить все, кроме руки.

Я новичок в обработке изображений. Кто-нибудь поможет мне в связи с вышеуказанным вопросом. Мне удобно использовать C и Matlab.

Ответы [ 5 ]

4 голосов
/ 21 марта 2011

Действительно простой подход, если у вас есть неподвижный фон и движущаяся рука (и довольно много изображений!), Это просто убрать среднее значение из набора изображений от каждого изображения. Если ничего больше, это нежное введение в Matlab.

3 голосов
/ 21 марта 2011

Название проблемы, которую вы пытаетесь решить, - «Сегментация изображения». Страница Wikipedia здесь: wiki - хорошее начало.

Если согласованность освещения не является для вас проблемой, я бы посоветовал начать с простого порогового значения RGB и посмотреть, как далеко вы продвинетесь, прежде чем пытаться что-то более сложное.

0 голосов
/ 30 июня 2011

Вычитание фона очень просто реализовать (оценить фон как среднее для всех кадров, затем вычесть каждый кадр из фона и порога, получая абсолютную разницу), но, к сожалению, работает хорошо только в том случае, если 1. камера имеет ручной коэффициент усиления и экспозиции 2. условия освещения неИзменение 3. задний фон является стационарным.4. фон виден намного дольше, чем передний план.

учитывая ваше описание, я предполагаю, что это не тот случай - так что вы можете использовать - как уже отмечалось - цвет как средство сегментирования переднего плана отфон.так как это рука, которую вы пытаетесь выделить, лучше всего узнать цвет руки.opencv предоставляет некоторые способы сделать это.если вы хотите сделать это самостоятельно, вы просто получите цвет некоторых ручных пикселей (вам нужно будет указать это вручную, по крайней мере, для одного кадра) и преобразовать их в HUE (который инкапсулирует цвет в зависимости от яркости.имеет очень постоянный оттенок), а затем сделать гистограмму оттенка.сравните это с остальными пикселями и затем решите, достаточно ли подобен оттенок.

0 голосов
/ 21 марта 2011

Можете ли вы указать, какие изображения у вас есть. Фон движется или статичен? Для статического фона это немного просто. Вам просто нужно вычесть входящее изображение из фонового изображения. Вы можете использовать некоторые морфологические операции, чтобы он выглядел лучше. Все они зависят от качества изображений, которые у вас есть. Если у вас движущийся фон, я бы посоветовал вам перейти к сегментации по цвету. Преобразовать изображение в YCbCr, а затем порог соответственно. Я знаю, что есть некоторые документы на него (однако у меня нет времени, чтобы найти их). Я предлагаю прочитать их в первую очередь. Вот одна ссылка, которая может вам помочь. Прочитайте часть сегментации кожи.

http://www.stanford.edu/class/ee368/Project_03/Project/reports/ee368group08.pdf

0 голосов
/ 21 марта 2011

Взгляните на OpenCV , библиотеку FOSS для приложений компьютерного зрения. В частности, см. Модуль Видеонаблюдение . Подробнее о вычитании фона в MATLAB см. В этой статье EETimes .

...