сделать изображение игрока вырезанным с помощью kinect более плавным, специальным сглаживанием - PullRequest
3 голосов
/ 02 ноября 2011

Я пытался вырезать изображение игрока с использованием изображения глубины kinect, но есть некоторая проблема с этим, во-первых, когда я использую глубинуStreamWithPlayerIndex, для глубины потока можно использовать разрешение только 320x240, вторая проблема - функция, которая извлекает правильный цветовой пиксель из глубины.Пиксель работает до 640x480, причина этих двух проблем: срезанное изображение не очень хорошо, если вы хотите показывать изображения с высоким разрешением, теперь я хочу знать, в любом случае, чтобы решить эти две проблемы Или алгоритм сглаживания выходного изображения?что-то вроде сглаживания?

look at player image edge

1 Ответ

4 голосов
/ 03 ноября 2011

Несколько вещей, о которых я могу подумать.

Если вы хотите выровнять края лица, то вы можете сделать это:

  • Сделать маску это 255, где находится игрок, 0 везде, где бы то ни было
  • Сгладить маску (используя Размытие по Гауссу с эмпирически определенным параметром)
  • Используйте эту маску при составленииисходное изображение игрока с новым фоном

Вы можете заменить шаг сглаживания морфологическими операциями (например, расширение , открытие / закрытие).

Как только выпоставив плеер на новый фон, вы можете "перо" края игрока, чтобы они выделялись немного меньше:

  • Применить Оператор Canny к маске края сверху
  • Расширьте маску.Теперь у вас есть маска, которая покрывает внешнюю поверхность плеера
  • Размытие частей составного изображения, которые находятся под маской
...