Lecture ou acquisition d'une vidéo

ConseilUtiliser les démonstrations

Il existe plusieurs programmes de démonstration utilisant les vidéos. A partir de ces démonstrations, on peut avoir accès aux lignes de code source et les modifier.

MéthodeModification de la démonstration

1
// Scilab Computer Vision Module
2
// Copyright (C) 2017 - Scilab Enterprises
3
4
scicv_Init();
5
6
f = scf();
7
toolbar(f.figure_id, "off");
8
demo_viewCode("video_reading.dem.sce");
9
10
videoCapture = new_VideoCapture(getSampleVideo("video.mpg"));
11
12
while is_handle_valid(f)
13
    [ret, frame] = VideoCapture_read(videoCapture);
14
    if ret then
15
        if is_handle_valid(f)
16
            matplot(frame);
17
            sleep(40);
18
        end
19
        delete_Mat(frame);
20
    else
21
        break
22
    end
23
end
24
25
delete_VideoCapture(videoCapture);
26
27
if is_handle_valid(f) then
28
    close(f);
29
end
30
31
32

On peut sauvegarder le code source dans un autre dossier et le modifier.

MéthodeAccès au signal temporel d'une zone

Nous allons calculer la valeur moyenne , la luminance, d'une zone rectangulaire et mémoriser les valeurs image par image.

  1. y=frame(130:150,300:350); // extraction de la zone 21 lignes et 51 colonnes

  2. n=size(y,1)*size(y,2);yc=double(matrix(y,n,3));// matrice de 1071 lignes (=21*51) et 3 colonnes (R,G,B)

  3. w=[w;mean(yc)] ; // le vecteur w contient la luminance moyenne de la zone rectangulaire

1
scicv_Init();
2
f = scf();
3
toolbar(f.figure_id, "off");
4
videoCapture = new_VideoCapture(getSampleVideo("video.mpg"));
5
w=[];
6
while is_handle_valid(f)
7
    [ret, frame] = VideoCapture_read(videoCapture);
8
    if ret then
9
        if is_handle_valid(f)
10
            subplot(2,1,1)
11
            matplot(frame(130:150,300:350));
12
            subplot(2,1,2)
13
            y=frame(130:150,300:350);
14
            n=size(y,1)*size(y,2);
15
            yc=double(matrix(y,n,3));
16
            
17
            w=[w;mean(yc)];
18
            plot(w)
19
            sleep(40);
20
        end
21
        delete_Mat(frame);
22
    else
23
        break
24
    end
25
end
26
delete_VideoCapture(videoCapture);
27
if is_handle_valid(f) then
28
    close(f);
29
end
30
31
32

Résultat final