我目前正在尝试使用视频制作色度键效果。 它部分工作,意思是:只有几个像素是透明的。但是我需要使相同颜色范围内的其他像素或颜色邻域透明。
以下代码是使用requestAnimationFrame调用的代码。
任何帮助将不胜感激!
computeFrame() {
this.c_frame_context.drawImage(
this.video,
0,
0,
this.c_frame.width,
this.c_frame.height,
);
let frame = this.c_frame_context.getImageData(
0,
0,
this.c_frame.width,
this.c_frame.height,
);
let l = frame.data.length / 4;
for (let i = 0; i < l; i++) {
let r = frame.data[i * 4 + 0];
let g = frame.data[i * 4 + 1];
let b = frame.data[i * 4 + 2];
if (r > 180 && g > 194 && b < 189) frame.data[i * 4 + 3] = 0;
}
this.c_processed_context.putImageData(frame, 0, 0);
return;
}