2017-03-06 1 views
0

J'ai une vidéo avec un fond vert et je veux l'afficher sur la vue de la caméra en direct et enlever le fond vert. Je veux également l'afficher dans une vue séparée afin que l'utilisateur puisse déplacer ou redimensionner la vidéo. Est-ce possible avec GPUImage? Pouvez-vous décrire les étapes requises pour le faire?iOS. Lire la vidéo avec un fond vert sur la vue de la caméra avec GPUImage

Répondre

0

Oui, c'est possible! Vous pouvez concevoir votre chaîne de filtrage comme suit:

GPUImageVideoCamera --> your GPUImageTwoInputFilter --> live camera GPUImageView 
Your GPUImageMovie --> your GPUImageTwoInputFilter 
Your GPUImageMovie --> separate GPUImageView 

Vous devez écrire votre propre GPUImageTwoInputFilter superposer vidéo fond vert (inputImageTexture2) sur la caméra en direct (inputImageTexture). Dans fragment shader GLSL, ajouter le code suivant dans principal:

texel = texture2D(inputImageTexture, textureCoordinate); 
texel2 = texture2D(inputImageTexture2, textureCoordinate); 
if (texel2.g > Tg && texel2.r < Tr && texel2.b < Tb) { 
    gFragColor = texel; 
} else { 
    gFragColor = texel2; 
} 

avec Tr, Tg, Tb est le seuil pour déterminer quel est le fond vert