-
Notifications
You must be signed in to change notification settings - Fork 0
/
GeneracionMaterial.m
executable file
·141 lines (113 loc) · 3.8 KB
/
GeneracionMaterial.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
% FASE 1: GENERACIÓN DE MATERIAL
clear
close all
clc
% =========================================================================
% 1.1 Secuencia de video para evaluar el funcionamiento del algoritmo de
% seguimiento
% =========================================================================
%% OBTENCION FPS DE LA CÁMARA
video = videoinput('winvideo',1,'YUY2_320x240');
video.TriggerRepeat = inf;
video.FrameGrabInterval = 1;
TIEMPO = [];
disp('ACTIVANDO cámara para cálculo de FPS...');
start(video)
while video.FramesAcquired < 300
[I TIME] = getdata(video,1);
TIEMPO = [TIEMPO; TIME];
disp('.')
end
stop(video)
flushdata(video);
disp('APAGANDO cámara...');
% Contador donde obtendremos los FPS a los que trabaja nuestra cámara
camaraFPS = 0;
for i=1:length(TIEMPO)
if floor(TIEMPO(i)) == 1
camaraFPS = camaraFPS+1;
end
end
% Número de FPS a los que queremos que se grabe el vídeo
videoFPS = 10;
% Intervalo de captura de cada frame al que debe trabajar el vídeo,
% para que se grabe a la cantidad de FPS deseada
intervalo = camaraFPS/videoFPS;
%% GENERACIÓN DE ARCHIVO DE VÍDEO
% Nombre que le vamos a poner al archivo.avi que vamos a generar
nombre = '01_Color.avi';
% Duración deseada del vídeo que grabaremos
duracion = 30;
% Número de frames que debemos capturar para que se cumpla la duración
% que hemos indicado
framesTotales = duracion*videoFPS;
%video = videoinput('winvideo',1,'YUY2_320x240');
%video.TriggerRepeat = inf;
video.FrameGrabInterval = intervalo;
video.ReturnedColorSpace = 'rgb';
set(video,'LoggingMode','memory');
avi = VideoWriter(nombre,'Uncompressed AVI');
avi.FrameRate = videoFPS;
frames = 0;
disp('....');
disp('ENCENDIENDO cámara para grabación de video');
open(avi)
start(video)
while video.FramesAcquired < framesTotales
I = getdata(video,1);
writeVideo(avi,I);
imshow(I),title(['Duración: ' num2str(frames/videoFPS)])
disp(['Duración: ' num2str(frames/videoFPS)])
frames = frames+1;
end
stop(video)
close(avi)
close all;
clc
disp('APAGANDO cámara');
% =========================================================================
% 1.2 Imágenes de calibración
% =========================================================================
%% GENERACION DE IMAGENES DE CALIBRACION
%video = videoinput('winvideo',1,'YUY2_320x240');
%video.TriggerRepeat = inf;
video.FrameGrabInterval = intervalo;
video.ReturnedColorSpace = 'rgb';
set(video,'LoggingMode','memory');
% Numero de imagenes totales
numIma = 18;
capturas = 0;
% Matriz donde almacenaremos todas las imágenes
imagenes = [];
imagenes = uint8(imagenes);
% Duración del temporizador antes de capturar la foto
duracion = 5;
% Número de frames que debemos capturar para que se cumpla la duración
% que hemos indicado
framesTotales = duracion*videoFPS;
% Por defecto se realizaran 18 fotos, de las cuales, las 4 primeras estan
% pensadas para hacerlas sin que aparezca el objeto y el resto, imagenes
% donde aparezca el objeto en diferentes posiciones y distancias con
% respecto a la camara
%
% Para cada foto, por defecto se tiene un temporizador de 5 segundos.
disp('ENCENDIENDO CAMARA...')
disp('Tienes 5s de temporizador para hacer las fotos')
for i=1:numIma
frames = 0;
start(video)
while video.FramesAcquired < framesTotales
I = getdata(video,1);
imshow(I),title(['FOTO: ' num2str(i) '/' num2str(numIma) ' - ' num2str(frames/videoFPS)])
frames = frames + 1;
end
imagenes(:,:,:,i) = I;
stop(video)
end
disp(' APAGANDO CAMARA...')
close all;
%% GUARDADO DE LAS IMÁGENES EN PAQUETE .MAT
disp('....');
disp('GUARDANDO archivo .mat');
save('ImagenesEntrenamiento_Calibracion.mat','imagenes');
disp('ARCHIVO GUARDADO');