function Icenter = local_max(Ivote, conn, t) range1 = -conn(1):conn(1); %create an array of values between -rmax and rmax range2 = -conn(2):conn(2); range3 = -conn(3):conn(3); A = Ivote; A(A0)); ind_f = find(ivote>0); Icenter = zeros(size(Ivote)); for li = 1: nl lfx = fx(li) + range1; lfy = fy(li) + range2; lfz = fz(li) + range3; [cx, cy, cz] = meshgrid(lfx, lfy, lfz); ind_m = sub2ind(size(Ivote), cx, cy, cz); lm_Ivote = A(ind_m); [~, lm_indx] = max(lm_Ivote(:)); if ind_f(li) == ind_m(lm_indx) Icenter(ind_f(li)) = A(ind_f(li)); %255 end end