Je vais montrer 2 couches (profondeur image de kinect et un masque, respectivement) dans mon projet de traitement. Dans ce projet, je vais cacher les zones où il n'y a pas d'utilisateur disponible en utilisant un masque. Notez que "mask" obtient ses pixels d'un film nommé "movie2" dans mon code.
Existe-t-il un moyen d'estomper les frontières des utilisateurs en réduisant l'opacité des bordures de masque?comment réduire l'opacité des frontières de masque (image transparente) dans le traitement?
Voici mon code:
import SimpleOpenNI.*;
PImage mask,depth;
SimpleOpenNI kinect;
int[] userMap;
void setup(){
kinect = new SimpleOpenNI(this);
size(640,480);
kinect.enableDepth();
kinect.enableUser();
}
void draw(){
kinect.update();
depth=kinect.depthImage();
userMap = kinect.userMap();
image(depth,0,0);
mask=loadImage("mask.jpg");
mask.loadPixels();
for (int y=0; y<480; y++) {
for (int x=0; x<640; x++) {
int index = x + y *640;
if (userMap[index]!= 0) {
mask.pixels[index]=color(0,0,0,0);
}
}
}
mask.updatePixels();
image(mask,0,0);
}
Bien sûr, juste itérer sur les pixels de bordure et définir leur opacité. Quelle partie de cela vous donne des ennuis? Pouvez-vous mettre en place un [mcve] qui essaie de le faire sur une seule image codée en dur au lieu d'un film? –
Bien sûr, le code a été modifié par souci de clarté. –