2015-02-04 5 views
1

Так что в основном я пытаюсь подсчитать количество снимков, изменяющихся во время одного видео. В настоящее время им не интересны алгоритмы затухания в/из, но просто количество общих сцен меняется.Обнаружение изменения видеоролика в Matlab

я уже придумал следующий algoirthm, но любопытное застрял с получением скалярного значения из матрицы подобия:

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

связанный: http://stackoverflow.com/questions/3273196/python-scene-change-detection, возможно, полезно: https://github.com/johmathe/Shotdetect –

ответ

0

Я не думаю, что с помощью pdist2 имеет смысл здесь. pdist2 дает вам все попарные расстояния между двумя наборами векторов. Здесь у вас всего два вектора, которые являются вашими гистограммами. Вы можете просто вычислить евклидово расстояние между двумя гистограмм:

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

Спасибо за ответ, следующее уравнение дает мне вектор, как его использовать в пороговых целях? в конечном итоге мне нужно сравнить его с целым числом. благодаря! –

Смежные вопросы