在Matlab中检测视频镜头变化

时间:2015-02-04 18:03:41

标签: algorithm matlab video-processing matlab-cvst

所以基本上我试图计算单个视频中的镜头数量变化。目前我对淡入/淡出算法不感兴趣,但只是改变了总场景的数量。

我想出了以下的算法,但有点想从相似度矩阵中获取标量值:

videoPlayer = vision.VideoPlayer;

Frame1 = step(videoFReader);
for i=1:n - 1
    step(videoPlayer, Frame1);

    Frame2 = step(videoFReader);

    hist1 = imhist(Frame1);
    hist2 = imhist(Frame2);

    D = pdist2(hist2, hist1,'euclidean');  % D is a matrix
    histNorm = norm(D);   % histNorm is a very small value which
                          % doesn't change its value drasticly during
                          % an actual scence change
    Frame1 = Frame2;

    %location = strcat('c:\1\', int2str(i), 'pic.jpg');
    %imwrite(d, location, 'Quality', 100);

    audios=audio( (i-1)*op + 1 : i*op , : );
end

1 个答案:

答案 0 :(得分:0)

我不认为在这里使用pdist2是有意义的。 pdist2为您提供两组矢量之间的所有成对距离。这里只有两个向量,它们是直方图。您可以简单地计算两个直方图之间的欧几里德距离:

d = sqrt(sum((hist1 - hist2).^2));