我也想将用户的肤色改为蓝色,就像我不知道该怎么做的头像脸一样?我已经尝试了各种方法来实现肤色变化但是无法做到。我试图找到肤色像素然后用蓝色替换它们然后整个皮肤变成完全蓝色。我希望皮肤变成蓝色,但它看起来像下巴,鼻子等的所有阴影都是真实的,所以蓝色可能会变暗或变亮,这取决于脸部。
我使用过:
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;
}
请有人告诉我有没有其他方法来创建这样的应用程序以及如何将用户的皮肤更改为蓝色?
答案 0 :(得分:2)
这实际上不是一个问题,而是一个多个问题。
要将肤色更改为蓝色,可以使用OpenCV等库。将图像转换为HSV颜色空间,并将H(色调)通道中的值增加80左右,您可能会得到所需的结果。
要制作头像,您可以使用Viola-Jones面部检测算法(也存在于OpenCV中)仅从用户的图片中提取面部,然后在您的周围和顶部添加您选择的图像。如果它看起来非常可怕,我不会感到惊讶。
祝你好运。