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; }
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; }