Advertisement
ichramm

parte2.m

Jun 5th, 2018
374
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 2.26 KB | None | 0 0
  1. % Directorio donde guardo las regiones obtenidas de la imagen
  2. if ~exist('./regiones', 'dir')
  3.     mkdir('./regiones');
  4. end
  5.  
  6. % Años para los cuales voy a leer data
  7. years = 1978:2012;
  8.  
  9. % Inicializo array con las areas
  10. areas = zeros(length(years), 1);
  11.  
  12. %for i=1:1%length(archivosPng)
  13. for i = 1:length(years)
  14.     year = years(i);
  15.    
  16.     % La data la guardo por año, así evito los duplicados
  17.     %year = num2str(file_name(14:17));
  18.    
  19.     % Dado que son muchos y que esto va a llevar tiempo, es mejor ir
  20.     % guardando los datos a medida que vamos trabajando
  21.     region_file = fullfile(cd, strcat('regiones/', num2str(year), '.txt'));
  22.  
  23.     % Si ya procesé este archivo entonces cargo los datos directamente
  24.     if exist(region_file, 'file')
  25.         data = load(region_file);
  26.         x = data(:,1)';
  27.         y = data(:,2)';
  28.     else
  29.         % Nombre del archivo (extensión incluida)
  30.         files = ls(strcat('Ozono14/Años/*', num2str(year), '1*.png'));
  31.         disp(files);
  32.        
  33.         if isempty(files)
  34.             disp(['No data for ', num2str(year)]);
  35.             continue;
  36.         end
  37.  
  38.         file_name = files(1,:);
  39.    
  40.         % cargo imagen
  41.         img = imread(strcat('Ozono14/Años/', file_name));
  42.  
  43.         % escalo imagen para eliminar distorsion
  44.         imagesc(img);
  45.  
  46.         % igualo ejes
  47.         axis equal
  48.  
  49.         % magia recomendada por el teacher
  50.         caxis([0 255]);
  51.        
  52.        
  53.         % Extraigo formato del nombre del archivo
  54.         format = file_name(10:13);
  55.  
  56.         % Cargo mapa de colores correspondiente
  57.         if strcmp(format, 'ept_') || ...
  58.                 strcmp(format, 'mt3_') || ...
  59.                 strcmp(format, 'n7t_') || ...
  60.                 strcmp(format, 'omi_') || ...
  61.                 strcmp(format, 'toms')
  62.             if format(4) == '_'
  63.                 format = format(1:3);
  64.             end
  65.             map = load(strcat('Ozono14/Años/', format, '.mat'));
  66.             colormap(map.(format));
  67.         else
  68.             error(strcat('Unknown format: ', format));
  69.         end
  70.        
  71.         % Para poder hacer zoom en la imagen
  72.         %input('');
  73.         %ginput(1);
  74.        
  75.         % Seleccionamos la region a la cual se le quiere calcular el area
  76.         % Utilizamos imfreehand que da mejor presición que finput
  77.         h = imfreehand;
  78.         pos = getPosition(h);
  79.         close all;
  80.        
  81.         x = pos(:,1);
  82.         y = pos(:,2);
  83.  
  84.         % empezamos a seleccionar los puntos
  85.         %[x, y] = ginput();
  86.        
  87.         % Guardo los puntos capturados en el archivo
  88.         data = [ x y ];
  89.         save(region_file, 'data', '-ascii');
  90.     end
  91.    
  92.     areas(i) = polyarea(x, y);
  93. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement