2017-06-27 1 views
0

Ich muss die Dauer der Kopf Gierbewegung finden. Die Kopfverfolgung ist , die von einer Videodatei erhalten wird, die Kopfbewegungen für jeden Rahmen verfolgt. Zum Beispiel hat das unten dargestellte Signal drei Kopf-Gierbewegungen. Gibt es eine Möglichkeit, die Dauer der Signaländerung in den Rechtecken zu ermitteln?Suche der Dauer der Kopf Gierbewegungen von Videosignal

Yaw-Signal: Yaw signal

verwendet I SG-Filter und Spitzen finden, aber es gibt eine Menge von nicht verwandten Peaks, wie gezeigt:

order =4 ; 
framelen =11; 
x=yaw_deg; 
lx = 20; 


sgf = sgolayfilt(x,order,framelen); 


plot(sgf); 
grid on; 

hold on; 
sgf=-sgf; 
[pks_smoothed,locs_smoothed,widths_smoothed,proms_smoothed] = findpeaks(sgf ,'MinPeakProminence',0.009); 
pks_smoothed = -pks_smoothed; 
plot(locs_smoothed,pks_smoothed,'g*'); 
text(locs_smoothed+.02,pks_smoothed,num2str((1:numel(pks_smoothed))')); 

findpeaks

Antwort

1

Wenn Sie sich für eine Suche schnelle Lösung und haben die Signalverarbeitung Toolbox können Sie die findpeaks Funktion verwenden. Wenn Sie mit verschiedenen Parametern spielen, können Sie Ihre Peaks identifizieren.

inv_signal = -signal; 
[pks,locs,w] = findpeaks(inv_signal,'MinPeakWidth',...,'MinPeakProminence',...); 
Verwandte Themen