Как перенести часть изображения на другое изображение со ссылкой на три точки? - PullRequest
0 голосов
/ 30 января 2019

Я делаю небольшой проект, в котором мне нужно извлечь волосы из портретного изображения, а затем поменять это изображение волос на голову другого изображения.По сути, это проект обмена волос.Для этого у меня есть:

  1. Извлеченная часть волос
  2. И я использовал бесшовное клонирование, чтобы поместить в голову другое изображение.Но это не дало мне совсем другой результат, чем ожидалось.

Вот окончательное изображение:

Источник волос

Source of hair

Удаленные волосы

Extracted Hair

Изображение получателя

Destination Image

После бесшовного клонирования

Seamless Cloned

Поскольку это не дает хорошего результата.Я прочитал документ (Раздел 3.5 Редактирование прически) на

Моделирование замены лица / прически на фотографиях с синтезом текстуры кожи

Ссылка Ссылка для вышеуказанной документации

и получил общее представление о том, что мы можем переносить волосяную часть, используя контрольные точки.

Но я не знаю, можем ли мы перенести с помощью опорных точек в opencv python.Я могу узнать координаты для передачи.Для этого нет проблем.Я хочу знать технику.Я занимался веб-серфингом, но ничего не нашел.

Желаемый результат:

Hair position reference points

Использование привязки точек, масштабирование, поворот и размещение в требуемом месте назначения.

Надеюсь, я очистил свой взгляд и требования.

ОБНОВЛЕНИЕ:

Результат аффинного преобразования, который я пробовал ранее:

Affine transform and then seamless cloning

1 Ответ

0 голосов
/ 30 января 2019

Здесь - документация, описывающая аффинные преобразования.Используйте обозначенные точки на обоих изображениях для создания матрицы преобразования для метода warpAffine .Примените это преобразование к изображению hair , а затем смешайте его с вашим destination изображением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...