2012-04-03 2 views
-1

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

Я использовал:

for (int i = 0; i < bytesInContext; i += 4) { 



      int alpha = data[i]; 
      int red = data[i+1]; 
      int green = data[i+2]; 
      int blue = data[i+3]; 



     if(((red>140)&&(red<190))||(green>120)&&(green<190)||(blue>150)&&(blue<150)){ 



       data[i]=255; 
       data[i+1]=13; 
       data[i+2]=43; 
       data[i+3]=63; 


      } 

Может кто-нибудь скажет мне, есть ли другие способы создания такого приложения и как изменить скин пользователя на синий цвет?

ответ

2

На самом деле это не один вопрос, а несколько вопросов в одном.

Чтобы изменить цвет кожи на синий, вы можете использовать библиотеку, такую ​​как OpenCV. Преобразуйте изображение в цветовое пространство HSV и увеличьте значения в канале H (оттенок) с 80 или около того, и вы можете получить желаемый результат.

Чтобы сделать аватар, вы можете использовать алгоритм обнаружения лица Viola-Jones (также присутствующий в OpenCV), чтобы извлечь только изображение лица из изображения пользователя, а затем добавить изображения по вашему выбору вокруг и поверх него. Я бы не удивился, если бы это выглядело ужасно ужасно.

Удачи.

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