ssa

Форк
0
/
rgb2pw.m 
65 строк · 1.8 Кб
1
function pw = rgb2pw(pwc, alg) 
2
    fMi  = 40.0/60.0;   % ÷àñòîòà ñðåçà äëÿ 40 óä/ìèí (0.6667 Ãö)
3
    cad=30;
4
    len=length(pwc(:,1));
5

6
    % Èíôîðìàòèâíûå ñèãíàëû äëÿ ôîðìèðîâàíèÿ ïóëüñîâûõ âîëí ïî öâåòîâûì êàíàëàì
7
    % Öâåòîâûå êàíàëû: 1->R; 2->G; 3->B
8

9
    if alg=="G"
10
        pw = pwc(:,2);
11
    end
12

13
    if alg=="G"
14
        pw = pwc(:,2)-pwc(:,1);
15
    end
16

17
    if alg=="Cr"
18
        pw = (112.0*pwc(:,1)-93.8*pwc(:,2)-18.2*pwc(:,3))./255.0;
19
        pw=pw-movmean(pw,32); % Âû÷èòàåì òðåíä
20
    end
21

22
    if alg=="CHROM"
23
        ws(:,1) = (3.0*pwc(:,1)-2.0*pwc(:,2))./sqrt(13.0);
24
        ws(:,2) = (-1.5*pwc(:,1)-pwc(:,2)+1.5*pwc(:,3))./sqrt(11.0/2.0); % óìíîæåíî íà (-1) äëÿ pw=ws(:,1)+ws(:,2)
25
    end
26
    
27
    if alg=="POS"
28
        ws(:,1) = (pwc(:,2)-pwc(:,3))./sqrt(2.0);
29
        ws(:,2) = (pwc(:,2)+pwc(:,3)-2.0*pwc(:,1))./sqrt(6.0);
30
    end
31

32
    %% Öåíòðèðîâàííàÿ è íîðìèðîâàííàÿ ïóëüñîâàÿ âîëíà pw
33
    SMO_med = floor(cad/fMi);
34

35
    if alg=="G" || alg=="GR" || alg=="Cr"
36
        pw2 = pw.*pw;
37
        DEV_med = medfilt1(pw2,SMO_med); 
38
        STD_med(:,1) = sqrt(DEV_med);
39
        pw = pw./STD_med(:,1);
40
    end
41

42
    if alg=="CHROM" || alg=="POS"
43
        DEV_med = medfilt1(ws(:,1).*ws(:,1),SMO_med); STD_med(:,1) = sqrt(DEV_med);
44
        DEV_med = medfilt1(ws(:,2).*ws(:,2),SMO_med); STD_med(:,2) = sqrt(DEV_med);
45
        pw = (ws(:,1)./STD_med(:,1))+(ws(:,2)./STD_med(:,2));
46
        [iPer, D_time] = iPer(video, pw, alg);
47
        HRV (video, iPer, D_time, alg);
48
    end
49

50
    % Àíàëèç àíîìàëüíûõ çíà÷åíèé
51
    prcMi = prctile(pw,0.1); 
52
    prcMa = prctile(pw,99.9); % ïðîöåíòèëè ïî óðîâíÿì 0.1% è 99.9%
53
    for i=1:len
54
        if pw(i)<prcMi
55
            pw(i) = prcMi;    
56
        end
57
        if pw(i)>prcMa
58
            pw(i) = prcMa;    
59
        end
60
    end
61
    STD = std(pw);
62
    pw = pw./STD; % íîðìèðîâàííàÿ pw
63
    pw = movmean(pw,5);
64
    
65
end

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.