Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Realizar una operación en una secuencia de imágenes

En este ejemplo se muestra cómo realizar una operación en una secuencia de imágenes. En el ejemplo se crea una matriz de imágenes y se pasa toda la matriz a la función para realizar el filtrado de desviación estándar en cada imagen de la secuencia.stdfilt

Cree una matriz de nombres de archivo.

fileFolder = fullfile(matlabroot,'toolbox','images','imdata'); dirOutput = dir(fullfile(fileFolder,'AT3_1m4_*.tif')); fileNames = {dirOutput.name}' numFrames = numel(fileNames) 
 fileNames =    10x1 cell array      {'AT3_1m4_01.tif'}     {'AT3_1m4_02.tif'}     {'AT3_1m4_03.tif'}     {'AT3_1m4_04.tif'}     {'AT3_1m4_05.tif'}     {'AT3_1m4_06.tif'}     {'AT3_1m4_07.tif'}     {'AT3_1m4_08.tif'}     {'AT3_1m4_09.tif'}     {'AT3_1m4_10.tif'}   numFrames =      10  

Preasignar una matriz -por-por- y leer imágenes en la matriz.mnp

I = imread(fileNames{1}); sequence = zeros([size(I) numFrames],class(I)); sequence(:,:,1) = I;  for p = 2:numFrames     sequence(:,:,p) = imread(fileNames{p}); end 

Procesar cada imagen de la secuencia, realizando el filtrado de desviación estándar. Tenga en cuenta que, para utilizar con una secuencia de imágenes, debe especificar el argumento, pasando una vecindad 2D.stdfiltnhood

sequenceNew = stdfilt(sequence,ones(3)); 

Ver cada imagen de entrada seguida de su imagen procesada.

figure; for k = 1:numFrames       imshow(sequence(:,:,k));       title(sprintf('Original Image # %d',k));       pause(1);       imshow(sequenceNew(:,:,k),[]);       title(sprintf('Processed Image # %d',k));       pause(1); end