Exemple #1
0
static void
TestMapIterator3(L_AMAP  *m,
                 l_int32  print)  /* forward iterator; delete the tree */
{
l_int32       count, npix, ival;
l_uint32      ukey;
L_AMAP_NODE  *n, *nn;

    n = l_amapGetFirst(m);
    count = 0;
    npix = 0;
    fprintf(stderr, "\n ------ Begin forward iter; delete tree ---------\n");
    while (n) {
        nn = l_amapGetNext(n);
        count++;
        ukey = n->key.utype;
        ival = n->value.itype;
        npix += ival;
        if (print)
            fprintf(stderr, "key = %x, val = %d\n", ukey, ival);
        l_amapDelete(m, n->key);
        n = nn;
    }
    fprintf(stderr, "Count from iterator: %d\n", count);
    fprintf(stderr, "Number of pixels: %d\n", npix);
    fprintf(stderr, " ------ End forward iter; delete tree ---------\n");
    return;
}
Exemple #2
0
static void
DisplayMapRGBHistogram(L_AMAP      *m,
                       const char  *rootname)
{
char          buf[128];
l_int32       ncolors, npix, ival, maxn, maxn2;
l_uint32      val32, maxcolor;
L_AMAP_NODE  *n;
NUMA         *na;

    fprintf(stderr, "\n --------------- Display RGB histogram ------------\n");
    na = numaCreate(0);
    ncolors = npix = 0;
    maxn = 0;
    maxcolor = 0;
    n = l_amapGetFirst(m);
    while (n) {
        ncolors++;
        ival = n->value.itype;
        if (ival > maxn) {
            maxn = ival;
            maxcolor = n->key.utype;
        }
        numaAddNumber(na, ival);
        npix += ival;
        n = l_amapGetNext(n);
    }
    fprintf(stderr, " Num colors = %d, Num pixels = %d\n", ncolors, npix);
    fprintf(stderr, " Color %x has count %d\n", maxcolor, maxn);
    maxn2 = amapGetCountForColor(m, maxcolor);
    if (maxn != maxn2)
        fprintf(stderr, " Error: maxn2 = %d; not equal to %d\n", maxn, maxn2);
    gplotSimple1(na, GPLOT_PNG, rootname, NULL);
    snprintf(buf, sizeof(buf), "%s.png", rootname);
    l_fileDisplay(buf, 1400, 0, 1.0);
    numaDestroy(&na);
    return;
}