【发布时间】:2013-08-08 23:38:45
【问题描述】:
我想分析有关 LED 闪烁的视频 (mp4)。 背景通常为灰色,但 LED 的颜色可能会有所不同。 LED 在视频中的距离足够近,因此 LED 灯是画面的最大部分。 我找到了 Color-Thief,但它只用于图像而不是视频。 因为闪烁的频率也可能不同,所以我需要检查视频的每一帧的主色。
如果有人有任何想法,我将不胜感激。提前感谢您的宝贵时间。
编辑: 视频的两个屏幕截图(第一个红色 LED 关闭;第二个红色 LED 亮)(必须删除两个屏幕截图链接的偷色链接)
这是视频开始播放时调用的函数,应该分析视频。我尝试通过平均颜色来做到这一点,但这没用,因为那通常是某种灰色/棕色。
function processFrame(e) {
var video = document.getElementById("video");
if (video.ended){
//dauer();
console.log("Ende");
//alert("Ende");
}
if (video.paused || video.ended) {
return;
}
var bufferCanvas = document.getElementById("buffer");
var displayCanvas = document.getElementById("display");
var buffer = bufferCanvas.getContext("2d");
var display = displayCanvas.getContext("2d");
buffer.drawImage(video, 0,0, bufferCanvas.width, displayCanvas.height);
var frame = buffer.getImageData(sx, sy, sw, sh);
var length = frame.data.length / 4;
for (var i = 0; i < length; i++) {
var r = frame.data[i * 4 + 0];
var g = frame.data[i * 4 + 1];
var b = frame.data[i * 4 + 2];
average= average +((r+g+b)/3)
}
averagecolor[i]=average
display.putImageData(frame, 0, 0);
setTimeout(processFrame, 0);
}
【问题讨论】:
-
请分享您迄今为止尝试过的内容,以便我们了解您在代码中遇到的问题。还请显示您要分析的视频的屏幕截图(只需使用 imgur.com 或一些并在您的帖子中插入链接)。一般来说,拍摄 LED/灯通常会导致中心被洗掉,这让您只剩下光环作为可用数据,因此要查看我们正在处理的内容,最好有图像。
标签: javascript html video canvas colors