a = mmreadgray('cameraman.tif');
g = mmneg(mmgradm(a));
mxt = mmmaxtree(g);
v = mmmaxregmax(mxt, 'v-dyn-image'); % volume extinction values
%
marker = mmlabel(v > 500);
regions = uint16(mmmaxpropagate(mxt, marker));
mmlblshow(regions);
fprintf(1, 'N(500) = %d regions\n', double(max(max(marker))))
N(500) = 118 regions
marker = mmlabel(v > 1000);
regions = uint16(mmmaxpropagate(mxt, marker));
mmlblshow(regions);
fprintf(1, 'N(1000) = %d regions\n', double(max(max(marker))))
N(1000) = 78 regions
marker = mmlabel(v > 4000);
regions = uint16(mmmaxpropagate(mxt, marker));
mmlblshow(regions);
fprintf(1, 'N(4000) = %d regions\n', double(max(max(marker))))
N(4000) = 32 regions
marker = mmlabel(v > 7000);
regions = uint16(mmmaxpropagate(mxt, marker));
mmlblshow(regions);
fprintf(1, 'N(7000) = %d regions\n', double(max(max(marker))))
N(7000) = 22 regions