¿Qué formatos de archivo puede leer matlab?
1. Utilice matlab para leer videos avi (solo se pueden leer ciertos tipos de películas avi comprimidas. Esto se debe a que existen muchas codificaciones para archivos de video avi y matlab solo admite algunas de ellas. Formato de codificación. Consulte
blog.csdn.net/IdoIwill/article/details/2125838) aviinfo('d:\abc.avi');
% muestra que el archivo del disco d existe abc. Información .avi, en la versión matlab2010, esta función se puede reemplazar por mmreader mov=aviread('abc:.avi'); %leer la película abc.avi movie(mov %reproducir la película
2. Convertir vídeo avi en secuencia de imágenes
mov=aviread('d:\abc.avi'); el número de fotograma del vídeo, mov es 1*1179 struct, y la estructura es for i=1: Vframes introducido en el punto 4
strtemp=strcat('d:\Converted picture\', int2str (i),'.','jpg'); % Convierte cada fotograma en una imagen .jpg imwrite(mov(i).cdata(:,:,), mov(i).colormap, strtemp); imagen al final del disco
3. Hay tres formas de leer el cuadro de índice de un vídeo avi (no aplicable a imágenes de índice):
La primera forma: mov=aviread(nombre de archivo) ; % Leer el vídeo
frame=mov(index); % Leer la imagen del cuadro de índice del archivo avi; img = frame.cdata; >El segundo tipo: frame = aviread(filename, index); img = frame.cdata;
El tercer tipo: mov = aviread(filename); ; Ejemplo: %Leer el primer fotograma de la imagen
mov = aviread('highwayI_raw.AVI'); frame=mov(index); Después de leer la imagen del cuadro de índice del video avi, el formato del cuadro almacenado es una estructura (struct), que tiene dos elementos: cdata y colormap
Ejemplo:
frame = aviread( 'highwayI_raw.AVI', i);
frame.cdata representa una matriz de datos. Las imágenes en color son tridimensionales y las imágenes en escala de grises son bidimensionales. Eso es equivalente a la matriz I después de I=imread('abc.jpg')
frame.colormap Ver (ayuda aviread)
%%%%% comprender los cuatro puntos anteriores , los archivos de vídeo se pueden procesar de la misma manera que los archivos de imagen%%%%
5. Convierta imágenes en color a imágenes en escala de grises, muy simple:
frame = aviread(' HighwayI_raw. AVI', i);
f_gray = rgb2gray(frame.cdata); Esto convertirá el i-ésimo fotograma del archivo en una imagen en escala de grises.
6. Crear archivo de vídeo avi
aviobj = avifile(nombre de archivo)
aviobj = avifile(nombre de archivo, 'Param1', Val1, 'Param2', Val2 ,...) Descripción:
aviobj = avifile(nombre de archivo) crea un archivo AVI con el nombre nombre de archivo. Todos los atributos del objeto de archivo AVI tienen valores predeterminados. Si el nombre del archivo no contiene una extensión, avifile agrega automáticamente la extensión .avi al nombre del archivo. AVI es un formato de archivo que almacena datos de sonido e imagen.
avifile devuelve un identificador que apunta al objeto del archivo AVI aviobj, al que se puede hacer referencia en otras funciones que utilizan este objeto. El objeto de archivo AVI admite propiedades y métodos que controlan varios aspectos del archivo AVI que se está creando.
aviobj = avifile(filename, 'Param1', Val1, 'Param2', Val2,...) crea un archivo AVI utilizando la configuración de parámetros especificada. Tabla de descripción de parámetros:
Los usuarios también pueden usar la sintaxis estructural para establecer las propiedades del objeto AVI. Todos los nombres de atributos del objeto Avifile son los mismos que los nombres en la tabla de parámetros y deben estar completos (excepto el parámetro de fotograma clave). Por ejemplo, para establecer el atributo de calidad en 100, puede utilizar la siguiente sintaxis
Formato:
aviobj = avifile('myavifile'); aviobj.quality = 100 ; p>
Ejemplo
Este ejemplo muestra cómo utilizar la función avifile para crear el archivo AVI ejemplo.avi.
t = linspace(0,2.5*pi,40); hecho = 10*sin(t); fig=figura
aviobj = avifile('ejemplo.avi') [x,y,z] = picos; para k=1:length(fact) h = surf(x,y,fact(k)*z axis([-3 3 -3 3 -80 80]) eje fuera
caxis([-90 90]) F = getframe(fig);
aviobj = addframe(aviobj,F end
close(fig)
aviobj = close(aviobj);
7. Clase mmreader---Crear un objeto de lectura de archivos de vídeo
De hecho, en matlab2010, se recomienda utilizar funciones como mmreader. y mmfileinfo. Si usa aviread, aparecerá la siguiente advertencia:
Advertencia: AVIREAD se eliminará en una versión futura. Utilice MMREADER en su lugar porque la interfaz de aviread requiere que el archivo avi no esté comprimido. , lo que afectará su aplicación. Puede encontrar una descripción muy detallada de la clase mmreader en la ayuda de matlab. A continuación se extraen algunos puntos clave: La clase mmreader se utiliza para crear una descripción de objeto de lectura multimedia para leer archivos de vídeo. :
La función mmreader puede leer todos los archivos multimedia, el valor de retorno es una estructura, el archivo luego se puede leer usando la función de lectura
Los formatos de archivo admitidos por mmreader están determinados por; cada plataforma de sistema operativo
Ventana: AVI(.avi) /MPEG-1(.mgp)Window Media Video(.wmv,.asf,.asx)
Macintosh: AVI( .avi)/MPEG-1(.mpg)/MPEG(.mp4,. m4v)/Películas Apple Quick Time (.mov) y formatos de vídeo compatibles con QuickTime en sistemas Apple
Linux: admite formatos de vídeo compatible con GStreamer 0.10 instalado en el sistema, incluido AVI/Ogg Theora (.ogg)
Hay dos tipos de archivos de vídeo creados por mmreader obj = mmreader(filename
obj); = mmreader(filename, 'PropertyName', 'PropertyValue');
El primer método solo necesita proporcionar (nombre de ruta predeterminado) + nombre de archivo para devolver un objeto de video, puede configurarlo; el nombre del atributo y el valor del atributo
Los atributos de obj son los siguientes: BitsPerPixel (solo lectura) El número de bits por píxel del video Duración (solo lectura) La duración total por segundo FrameRate (lectura) solamente) La velocidad de cuadros por segundo Altura (solo lectura) La altura de cada cuadro del video Nombre (solo lectura) ) El nombre del archivo de video correspondiente al objeto NumberOfFrames (solo lectura) El número total de cuadros en la secuencia de video Ruta (solo lectura) El nombre de la ruta del archivo de video Etiqueta Define la etiqueta del objeto de video (predeterminado '') Tipo (solo lectura) La clase del objeto Nombre: se utiliza mmreader UserData
El área para datos definidos por el usuario VideoFormat (solo lectura) Formato de compresión de archivos de video Ancho (solo lectura) El ancho de cada cuadro del video El objeto obj generalmente se usa con el método de lectura. El uso de lectura es el siguiente: video = read(obj);
video = read(obj,index); o video = read(obj, [index1,index2])
De hecho, el primer valor predeterminado es read(obj, [1,inf]) Un método lee todos los fotogramas del objeto de vídeo obj; el segundo método lee el fotograma de índice del objeto de vídeo obj
El objeto de vídeo devuelto por el primero. El método es una matriz de 4 dimensiones, H-W-B-F H: Imagen La altura del marco W: el ancho del marco de la imagen B: el canal de color del marco de la imagen F: el número de marcos de la imagen
El segundo El método devuelve los datos del marco de la imagen, la imagen en escala de grises devuelve una matriz bidimensional y la imagen RGB24 devuelve una matriz tridimensional. Un ejemplo de lectura del primer fotograma de la imagen es el siguiente
obj = mmreader('abc.avi'); (imagen);