所以基本上我试图计算单个视频中的镜头数量变化。目前我对淡入/淡出算法不感兴趣,但只是改变了总场景的数量。
我想出了以下的算法,但有点想从相似度矩阵中获取标量值:
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
答案 0 :(得分:0)
我不认为在这里使用pdist2
是有意义的。 pdist2
为您提供两组矢量之间的所有成对距离。这里只有两个向量,它们是直方图。您可以简单地计算两个直方图之间的欧几里德距离:
d = sqrt(sum((hist1 - hist2).^2));