Je fais un projet sur l'extraction de personnes et la soustraction de fond. Je vais exporter une vidéo des personnes de premier plan. Appris de Daniel Shiffman, maintenant je pouvais obtenir les pixels de premier plan mais je ne sais pas comment exporter ces pixels en vidéo. Ou je n'ai pas besoin de l'exporter immédiatement, mais j'ai besoin de faire un traitement supplémentaire sur ces pixels en tant que format vidéo. Est-ce que quelqu'un pourrait m'aider? Merci beaucoup d'avance. Désolé pour mon anglais s'il y a une erreur.Comment exporter une vidéo de pixels de premier plan dans le traitement
Voici le code:
import processing.video.*;
Capture video;
PImage backgroundImage;
float threshold = 30;
void setup() {
size(320, 240);
video = new Capture(this, width, height);
video.start();
backgroundImage = createImage(video.width, video.height, RGB);
}
void captureEvent(Capture video) {
video.read();
}
void draw() {
loadPixels();
video.loadPixels();
backgroundImage.loadPixels();
image(video, 0, 0);
for (int x = 0; x < video.width; x++) {
for (int y = 0; y < video.height; y++) {
int loc = x + y * video.width;
color fgColor = video.pixels[loc];
color bgColor = backgroundImage.pixels[loc];
float r1 = red(fgColor); float g1 = green(fgColor); float b1 = blue(fgColor);
float r2 = red(bgColor); float g2 = green(bgColor); float b2 = blue(bgColor);
float diff = dist(r1, g1, b1, r2, g2, b2);
if (diff > threshold) {
pixels[loc] = fgColor;
} else {
pixels[loc] = color(0, 0, 0);
}
}}
updatePixels();
}
void mousePressed() {
backgroundImage.copy(video, 0, 0, video.width, video.height, 0, 0, video.width, video.height);
backgroundImage.updatePixels();
}
Désolé pour la mauvaise destination. Je suis un débutant ici et merci pour votre guide. J'ai déjà pris en compte votre conseil mais je ne veux que les pixels de premier plan et non les pixels entiers de l'image. Je suppose que peut-être le point clé est pixels [loc]. Pourriez-vous donner quelques conseils à ce sujet? Merci beaucoup. – iiyeo
@iiyeo Voir la modification à ma réponse. Vous voudriez copier les pixels que vous voulez de l'image source dans un tampon cible. La fonction 'createGraphics()' est votre ami ici. –
Appréciez pour votre réponse rapide. Je vais essayer de cette façon. – iiyeo