% *** ---------------------------------------------------------------------------------------- *** % % ***| Funcion principal de la implementacion realizada. Recibe a la entrada, entre otros | *** % % ***| parametros, la imagen original a segmentar | *** % % *** ---------------------------------------------------------------------------------------- *** % function seg(filename,margen,flag_marco,color_option) [color_camino,color_puntos] = colores(color_option); tic; % Inicio t.segmentacion [imag,map] = imread(filename); % Lectura de la imagen [filas,columnas,dim] = size(imag); image(imag); if flag_marco == 1 % Si la opcion de marco de la imagen como camino minimo esta activada imag = marco_minimo(imag,filas,columnas); end [click_x,click_y,button] = ginput(1); % Captura pixel semilla semilla = [round(click_y),round(click_x)]; cont_clicks = 1; % Contador de puntos proporcionados por el usuario imag(semilla(1),semilla(2),[1 2 3]) = color_puntos; image(imag); while button ~= 3 % Se pediran puntos mientras el usuario no pinche el boton derecho [click_x,click_y,button] = ginput(1); % Captura resto de pixeles posicion = [round(click_y),round(click_x)]; if button ~= 3 % Comprobacion de que no se pulso el boton derecho para finalizar la segmentacion % Formacion de la subimagen y su respectivo Mapa de Coste Local (MCL) [mapa_coste_local,sem_rel,pos_rel,vector_margenes] = mcl(imag,semilla,posicion,margen); % Creacion de la matriz 3D 'flechas_sub' que contiene el camino minimo de la subimagen flechas_sub = livewire(mapa_coste_local,sem_rel); % Adaptacion y Preparacion de la matriz 3D 'flechas' que contiene el camino minimo en el interior de la subimagen flechas = adaptacion_flechas(flechas_sub,semilla,posicion,sem_rel,pos_rel,filas,columnas,vector_margenes); % Llamada a la funcion que recorrera el camino minimo imag = camino(imag,flechas,semilla,posicion,color_camino,color_puntos); semilla = posicion; % El posterior click pasa a ser ahora la nueva 'semilla' cont_clicks = cont_clicks + 1; end end timer = toc; % Fin t.segmentacion imshow(imag); % Presentacion final de la imagen segmentada % Llamada a la funcion que crea los archivos resultado crear_resultados(filename,imag,filas,columnas,margen,timer,cont_clicks);