[mmMaxaopenthmt] [Up] [mmMaxthreshold] Thresholds and Regional Maxima

mmMaxregmax
Returns information about the regional maxima of the image.

Synopsis

Image mmMaxregmax ( const MaxTree& maxtree , const String& which = "binary" );

Input

maxtree MaxTree

which String

Regional maxima feature: "binary", "values", "labels", "stats", "a-dyn", "h-dyn" or "v-dyn", "a-dyn-image", "h-dyn-image" or "v-dyn-image"

Default: "binary"

Output

y Image

Description

Return a regional maxima feature:

Examples

Binary

Image a = mmReadgray("galeao.jpg");
MaxTree mt = mmMaxaopenmt(mmMaxtree(a), "area", 500);
Image b = mmMaxregmax(mt);
mmShow(b);
        

b
Labeling

Image c = mmMaxregmax(mt, "labels");
mmLblshow(c);
        

c
Statistics

Image stats = mmMaxregmax(mt, "stats");
int ***ptr = (int ***)stats.pointers();
printf("Found %d blobs. Printing the first five:\n", stats.height());
for(int i = 0; i < 5; i++) {
    int *blob = ptr[0][i];
    printf("Blob #%d: %4d %6d %6d %3d %3d %3d %3d\n", 
            i+1, blob[0], blob[1], blob[2], blob[3], blob[4], blob[5], blob[6]);
}
        

Found 49 blobs. Printing the first five:
Blob #1:  504  41098  13363  59   0 101  58
Blob #2:  572 215931  12417 359   0 394  43
Blob #3:  501 231151   7718 442   0 480  35
Blob #4:  517 280578  10575 509   0 573  32
Blob #5:  827 178076  25759 178   3 237  57

Dynamics

unsigned char _b[7] = {9, 10, 11, 4, 10, 10, 2};
Image bb = Image(7, 1, 1, "uint8", (char *)_b);
MaxTree mx = mmMaxtree(bb);
Image hhi = mmMaxregmax(mx, "h-dyn-image");
Image hh  = mmMaxregmax(mx, "h-dyn");
Image vvi = mmMaxregmax(mx, "v-dyn-image");
Image vv  = mmMaxregmax(mx, "v-dyn");
Image aai = mmMaxregmax(mx, "a-dyn-image");
Image aa  = mmMaxregmax(mx, "a-dyn");
printf("h-dyn-image: %s\n%s\n", hhi.typestr(), (char *)hhi.str());  // [0 0  9 0  6  6 0]
printf("h-dyn: %s\n%s\n", hh.typestr(),  (char *)hh.str());
printf("v-dyn-image: %s\n%s\n", vvi.typestr(), (char *)vvi.str());  // [0 0 42 0 12 12 0]
printf("v-dyn: %s\n%s\n", vv.typestr(),  (char *)vv.str());
printf("a-dyn-image: %s\n%s\n", aai.typestr(), (char *)aai.str());  // [0 0  7 0  2  2 0]
printf("a-dyn: %s\n%s\n", aa.typestr(),  (char *)aa.str());
        

h-dyn-image: int32
         0      0      9      0      6      6      0 
h-dyn: int32
         9      6 
v-dyn-image: int32
         0      0     42      0     12     12      0 
v-dyn: int32
        42     12 
a-dyn-image: int32
         0      0      6      0      2      2      0 
a-dyn: int32
         6      2

[mmMaxaopenthmt] [Up] [mmMaxthreshold]