Matlab - Procesamiento de video (tiempo real)

 
Vista:
sin imagen de perfil

Procesamiento de video (tiempo real)

Publicado por Guillermo (12 intervenciones) el 23/06/2017 21:50:17
Hola recién he realizado una GUI de visión artificial he logrado hacer varias operaciones pero sólo en imágenes "fijas" y tengo tres preguntas deseo saber ¿cuál sería la mejor opción para realizar en "tiempo real"?
1.- La función timer (algún ejemplo claro de ¿cómo se podría utilizar?)
2.- La función while en bucle infinito ( ¿Cómo se desactiva un while en bucle infinito? )
3.- ¿Alguna otra función que conozcan?
(requiero aplicar filtros, máscaras y generar histogramas RGB/BW)
Gracias de antemano

TIMER FUNCTION

https://www.mathworks.com/help/matlab/matlab_external/timerfcn.html?searchHighlight=timerfcn&s_tid=doc_srchtitle

quiero aplicar filtros y mascaras y hacer un histograma en "tiempo real"
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Procesamiento de video (tiempo real)

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 23/06/2017 23:56:03
timer mira el ejemplo de matlab :

1
2
3
4
5
6
7
8
9
10
11
t = timer;
t.StartFcn = @(~,thisEvent)disp([thisEvent.Type ' executed '...
    datestr(thisEvent.Data.time,'dd-mmm-yyyy HH:MM:SS.FFF')]);
t.TimerFcn = @(~,thisEvent)disp([thisEvent.Type ' executed '...
     datestr(thisEvent.Data.time,'dd-mmm-yyyy HH:MM:SS.FFF')]);
t.StopFcn = @(~,thisEvent)disp([thisEvent.Type ' executed '...
    datestr(thisEvent.Data.time,'dd-mmm-yyyy HH:MM:SS.FFF')]);
t.Period = 2;
t.TasksToExecute = 3;
t.ExecutionMode = 'fixedRate';
start(t)

2) con while tienes una opción más sencilla, lo puedes parar con un break; así sea infinito este lo colocas dentro de un condicional y una vez se cumpla esa condición el while se detiene

3) hay otras funciones de eventos pero dependen de la clase que se use por ejemplo en los audios hay una función que puede ejecutarse mientras el audio se esté reproduciendo, pero son específicas aplicadas a cada tipo de señales en imágenes hay algunas de vídeos para la clase VideoReader

saludos
https://www.facebook.com/royethmatlab/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Procesamiento de video (tiempo real)

Publicado por Guillermo (12 intervenciones) el 27/06/2017 04:10:33
muchas gracias fue de mucha utilidad y agradezco el tiempo dedicado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Leidy Vianey

Procesamiento de video (tiempo real)

Publicado por Leidy Vianey (2 intervenciones) el 13/07/2017 21:18:54
Cordial saludo

Quisiera saber si es posible usando Matlab procesar un vídeo enformato MP4 el cual fue tomado con unos picos de ruido muy altos, la idea es eliminar ese ruido y mejorar el audio en el víde.

- ¿ Es posible con Matlab?
- ¿ con que comando leo ese tipo de formato de vídeo?


Quedo atenta y agradezco su amable respuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Procesamiento de video (tiempo real)

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 13/07/2017 22:39:58
1
[y,Fs] = audioread('video.mp4');

en y tienes la señal y en Fs la velocidad de la muestra

con este comando vas a leer el audio del vídeo colocando el nombre del vídeo original, para eliminar el ruido de tu audio debes cambiar de dominio, debes aplicar transformada de Fourier aquí para eliminar los picos que no te interesan que se supone que es el ruido y luego de esto hacer antitransformada de fourier para volver al dominio de tu sonido real, es decir que este proceso de limpieza se realiza en el dominio de la frecuencia para eliminar picos de altas y bajas frecuencias y una vez realizado se pasa al dominio del tiempo

funciones que te pueden servir para el desarrollo de tu proyecto

ifft
fft
fft2
ifft2
real


un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Leidy Vianey

Procesamiento de video (tiempo real)

Publicado por Leidy Vianey (2 intervenciones) el 13/07/2017 23:32:55
Muchas gracias por tu ayuda.

Una última pregunta después del proceso como guardo el resultado?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Procesamiento de video (tiempo real)

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 14/07/2017 00:31:13
escribes otro vídeo nuevo con el comando vision.VideoFileWriter

por ejemplo

1
2
3
viejo = vision.VideoFileReader('video.mp4');
[y,Fs]=audioread('video.mp4');
nuevo = vision.VideoFileWriter('archivonuevo.mp4','FrameRate',viejo.info.VideoFrameRate,'AudioInputPort',true);

luego de esto haces el procesamiento de tu audio y en un for agregas los frames con el audio procesado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar