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.

Leer y analizar archivos de imagen

En este ejemplo se muestra cómo crear un almacén de datos para una colección de imágenes, leer los archivos de imagen y buscar las imágenes con el matiz, la saturación y el brillo promedio máximos (HSV). Para obtener un ejemplo similar sobre el procesamiento de imágenes mediante la función, consulte.mapreduceCalcular el HSV promedio máximo de imágenes con MapReduce

Identifique dos directorios de MATLAB® y cree un almacén de datos que contenga imágenes y extensiones en esos directorios..jpg.tif.png

location1 = fullfile(matlabroot,'toolbox','matlab','demos'); location2 = fullfile(matlabroot,'toolbox','matlab','imagesci');  ds = datastore({location1,location2},'Type','image',...                       'FileExtensions',{'.jpg','.tif','.png'});

Inicializar los valores promedio máximos de HSV y los datos de imagen correspondientes.

maxAvgH = 0; maxAvgS = 0; maxAvgV = 0;  dataH = 0; dataS = 0; dataV = 0;

Para cada imagen de la colección, lea el archivo de imagen y calcule los valores promedio de HSV en todos los píxeles de la imagen. Si un valor promedio es mayor que el de una imagen anterior, grabarlo como el nuevo máximo (, o) y registrar los datos de imagen correspondientes (,, o).maxAvgHmaxAvgSmaxAvgVdataHdataSdataV

for i = 1:length(ds.Files)     data = readimage(ds,i);     % Read the ith image         if ~ismatrix(data)          % Only process 3-dimensional color data                 hsv = rgb2hsv(data);    % Compute the HSV values from the RGB data                   h = hsv(:,:,1);         % Extract the HSV values         s = hsv(:,:,2);                     v = hsv(:,:,3);                      avgH = mean(h(:));      % Find the average HSV values across the image         avgS = mean(s(:));         avgV = mean(v(:));                  if avgH > maxAvgH       % Check for new maximum average hue            maxAvgH = avgH;            dataH = data;         end          if avgS > maxAvgS       % Check for new maximum average saturation            maxAvgS = avgS;            dataS = data;         end          if avgV > maxAvgV       % Check for new maximum average brightness            maxAvgV = avgV;            dataV = data;         end     end end

Visualiza las imágenes con el matiz, la saturación y el brillo promedio más grandes.

imshow(dataH,'InitialMagnification','fit'); title('Maximum Average Hue')

figure imshow(dataS,'InitialMagnification','fit'); title('Maximum Average Saturation');

figure imshow(dataV,'InitialMagnification','fit'); title('Maximum Average Brightness');

Consulte también

| | |

Temas relacionados