绘制视频中像素值的变化,作为Matlab中时间的函数

时间:2015-10-18 22:37:07

标签: matlab

我对Matlab比较陌生,想要在视频中绘制像素值的变化。基本上,我会在视频中随机分配一个像素进行跟踪,脚本会在整个视频过程中绘制该像素的值。

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:3)

让我们打开一个MATLAB示例文件:

v = VideoReader('xylophone.mp4')

并跟踪电影中间附近的像素:

row = 120;
col = 160;

我们迭代所有帧。对于每个帧,我们在帧中提取坐标为(r,g,b)的像素的(row,col)颜色值,将其转换为亮度,并在向量L中收集它:

L = [];
while hasFrame(v)
    video = readFrame(v);
    r = video(row, col, 1);
    g = video(row, col, 2);
    b = video(row, col, 3);
    lum = 0.2126 * r + 0.7152 * g + 0.0722 * b;
    L = [L lum];
end

最后我们绘制亮度随时间的变化:

plot(L)
ylim([0,255])

看起来像这样:

enter image description here