function [ Mplus, Mminus, Mintersect, Bplus, Bminus, Mwater, WaterRGB ] = isola5( I ) original = I; I = imgradient(I); I = I/max(max(I)); I = imadjust(I); I = im2bw(I, 0.5); B = I; [centroP, raioP, metricP] = imfindcircles(I,[100 150],'ObjectPolarity','bright', 'Sensitivity',0.99 ); centroP = centroP(1,:); raioP = raioP(1); metricP = metricP(1); [centroG, raioG, metricG] = imfindcircles(I,[150 250],'ObjectPolarity','bright', 'Sensitivity',0.99 ); centroG = centroG(1,:); raioG = raioG(1); metricG = metricG(1); if metricP > metricG raio = raioP; centro = centroP; else raio = raioG; centro = centroG; end raioPlus = raio+5; raioMinus = raio-40; centro = round(centro); raio = round(raioPlus); mask=zeros(size(I)); mask(centro(2),centro(1))=1; Mplus = bwdist(mask) <= raio; Mplus = immultiply(Mplus,original); x = centro(1); y = centro(2); Mplus = imcrop(Mplus,[x-raio y-raio 2*raio 2*raio]); Bplus = imcrop(B,[x-raio y-raio 2*raio 2*raio]); centro = round(centro); raio = round(raioMinus); mask=zeros(size(I)); mask(centro(2),centro(1))=1; Mminus = bwdist(mask) <= raio; Mminus = immultiply(Mminus,original); x = centro(1); y = centro(2); Mminus = imcrop(Mminus,[x-raio y-raio 2*raio 2*raio]); Bminus = imcrop(B,[x-raio y-raio 2*raio 2*raio]); maskPlus=zeros(size(Mplus)); centroPlus = size(Mplus); centroPlus = round(centroPlus/2); maskPlus(centroPlus(2),centroPlus(1))=1; maskPlus = bwdist(maskPlus) <= raioPlus; maskMinus=zeros(size(Mplus)); maskMinus(centroPlus(2),centroPlus(1))=1; maskMinus = bwdist(maskMinus) <= raioMinus; maskIntersect = maskPlus - maskMinus; maskIntersect = im2bw(maskIntersect); Mintersect = immultiply(maskIntersect,Mplus); n = 4; levels = multithresh(Mplus,n); MPosterize = imquantize(Mplus,levels); TamanhoI = size(MPosterize); SizeH = TamanhoI(2); SizeV = TamanhoI(1); BordaV = zeros(SizeV,10); BordaH = zeros(10, SizeH +20); MPosterize = cat(2,BordaV,MPosterize); MPosterize = cat(2,MPosterize,BordaV); MPosterize = cat(1,MPosterize,BordaH); MPosterize = cat(1,BordaH,MPosterize); Mwater = watershed(MPosterize,4); Mwater(Mwater==1)=0; WaterRGB = label2rgb(Mwater,'jet',[0 0 0],'shuffle'); end