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.

Realice 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 desviaciones 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  

Preasigne un-por--por-Array y lea las 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 

Procese cada imagen de la secuencia, realizando un filtrado de desviación estándar. Tenga en cuenta que, para usar con una secuencia de imágenes, debe especificar el argumento, pasando una vecindad 2-D.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