main(int argc, char **argv) { l_int32 i; PIX *pixs, *pixt0, *pixt1, *pixt2, *pixt3, *pixt4, *pixt5, *pixt6; static char mainName[] = "binmorph4_reg"; pixs = pixRead("feyn.tif"); #if TEST_SYMMETRIC /* This works properly if there is an added border */ resetMorphBoundaryCondition(SYMMETRIC_MORPH_BC); #if 1 pixt1 = pixAddBorder(pixs, 64, 0); pixTransferAllData(pixs, &pixt1, 0, 0); #endif #endif /* TEST_SYMMETRIC */ pixt1 = pixCreateTemplateNoInit(pixs); pixt2 = pixCreateTemplateNoInit(pixs); pixt3 = pixCreateTemplateNoInit(pixs); pixt4 = pixCreateTemplateNoInit(pixs); pixt5 = pixCreateTemplateNoInit(pixs); pixt6 = pixCreateTemplateNoInit(pixs); for (i = 2; i < 64; i++) { #if 1 /* Compare morph composite with morph non-composite */ DoComparisonDwa1(pixs, pixt1, pixt2, pixt3, pixt4, pixt5, pixt6, i); #endif #if 1 /* Compare DWA non-composite with morph composite */ if (i < 16) DoComparisonDwa2(pixs, pixt1, pixt2, pixt3, pixt4, pixt5, pixt6, i); /* Compare DWA composite with DWA non-composite */ if (i < 16) DoComparisonDwa3(pixs, pixt1, pixt2, pixt3, pixt4, pixt5, pixt6, i); /* Compare DWA composite with morph composite */ DoComparisonDwa4(pixs, pixt1, pixt2, pixt3, pixt4, pixt5, pixt6, i); /* Compare DWA composite with morph non-composite */ DoComparisonDwa5(pixs, pixt1, pixt2, pixt3, pixt4, pixt5, pixt6, i); #endif } pixDestroy(&pixs); pixDestroy(&pixt1); pixDestroy(&pixt2); pixDestroy(&pixt3); pixDestroy(&pixt4); pixDestroy(&pixt5); pixDestroy(&pixt6); return 0; }
void TestAll(L_REGPARAMS *rp, PIX *pixs, l_int32 symmetric) { l_int32 i, n, rsize, fact1, fact2, extra; l_int32 size, lastsize; l_int32 dwasize[256]; l_int32 ropsize[256]; PIX *pix1, *pix2, *pix3, *pix4, *pix5, *pix6; if (symmetric) { /* This works properly with an added border of 128 */ resetMorphBoundaryCondition(SYMMETRIC_MORPH_BC); pix1 = pixAddBorder(pixs, 128, 0); pixTransferAllData(pixs, &pix1, 0, 0); fprintf(stderr, "Testing with symmetric boundary conditions\n"); } else { resetMorphBoundaryCondition(ASYMMETRIC_MORPH_BC); fprintf(stderr, "Testing with asymmetric boundary conditions\n"); } pix1 = pixCreateTemplateNoInit(pixs); pix2 = pixCreateTemplateNoInit(pixs); pix3 = pixCreateTemplateNoInit(pixs); pix4 = pixCreateTemplateNoInit(pixs); pix5 = pixCreateTemplateNoInit(pixs); pix6 = pixCreateTemplateNoInit(pixs); /* ---------------------------------------------------------------- * * Faster test; testing fewer sizes * * ---------------------------------------------------------------- */ #if FASTER_TEST /* Compute the actual sizes used for each input size 'i' */ for (i = 0; i < 256; i++) { dwasize[i] = 0; ropsize[i] = 0; } for (i = 65; i < 256; i++) { selectComposableSizes(i, &fact1, &fact2); rsize = fact1 * fact2; ropsize[i] = rsize; getExtendedCompositeParameters(i, &n, &extra, &dwasize[i]); } /* Use only values where the resulting sizes are equal */ for (i = 65; i < 240; i++) { n = 1 + (l_int32)((i - 63) / 62); extra = i - 63 - (n - 1) * 62 + 1; if (extra == 2) continue; /* don't use this one (e.g., i == 126) */ if (ropsize[i] == dwasize[i]) DoComparisonDwa1(rp, pixs, pix1, pix2, pix3, pix4, pix5, pix6, i); } #endif /* FASTER_TEST */ /* ---------------------------------------------------------------- * * Slower test; testing maximum number of sizes * * ---------------------------------------------------------------- */ #if SLOWER_TEST lastsize = 0; for (i = 65; i < 199; i++) { getExtendedCompositeParameters(i, &n, &extra, &size); if (size == lastsize) continue; if (size == 126 || size == 188) continue; /* deliberately off by one */ lastsize = size; DoComparisonDwa2(rp, pixs, pix1, pix2, pix3, pix4, pix5, pix6, size); } #endif /* SLOWER_TEST */ fprintf(stderr, "\n"); pixDestroy(&pix1); pixDestroy(&pix2); pixDestroy(&pix3); pixDestroy(&pix4); pixDestroy(&pix5); pixDestroy(&pix6); }
main(int argc, char **argv) { l_int32 i, n, rsize, fact1, fact2, extra; l_int32 size, lastsize; l_int32 dwasize[256]; l_int32 ropsize[256]; PIX *pixs, *pixt0, *pixt1, *pixt2, *pixt3, *pixt4, *pixt5, *pixt6; static char mainName[] = "binmorph5_reg"; pixs = pixRead("feyn.tif"); #if TEST_SYMMETRIC /* This works properly if there's an added border */ resetMorphBoundaryCondition(SYMMETRIC_MORPH_BC); #if 1 pixt1 = pixAddBorder(pixs, 64, 0); pixTransferAllData(pixs, &pixt1, 0, 0); #endif #endif /* TEST_SYMMETRIC */ pixt1 = pixCreateTemplateNoInit(pixs); pixt2 = pixCreateTemplateNoInit(pixs); pixt3 = pixCreateTemplateNoInit(pixs); pixt4 = pixCreateTemplateNoInit(pixs); pixt5 = pixCreateTemplateNoInit(pixs); pixt6 = pixCreateTemplateNoInit(pixs); /* ---------------------------------------------------------------- * * Faster test; testing fewer sizes * * ---------------------------------------------------------------- */ #if FASTER_TEST /* Compute the actual sizes used for each input size 'i' */ for (i = 0; i < 256; i++) { dwasize[i] = 0; ropsize[i] = 0; } for (i = 65; i < 256; i++) { selectComposableSizes(i, &fact1, &fact2); rsize = fact1 * fact2; ropsize[i] = rsize; getExtendedCompositeParameters(i, &n, &extra, &dwasize[i]); } /* Use only values where the resulting sizes are equal */ for (i = 65; i < 240; i++) { n = 1 + (l_int32)((i - 63) / 62); extra = i - 63 - (n - 1) * 62 + 1; if (extra == 2) continue; /* don't use this one (e.g., i == 126) */ if (ropsize[i] == dwasize[i]) DoComparisonDwa1(pixs, pixt1, pixt2, pixt3, pixt4, pixt5, pixt6, i); } #endif /* FASTER_TEST */ /* ---------------------------------------------------------------- * * Slower test; testing maximum number of sizes * * ---------------------------------------------------------------- */ #if SLOWER_TEST lastsize = 0; for (i = 65; i < 199; i++) { getExtendedCompositeParameters(i, &n, &extra, &size); if (size == lastsize) continue; if (size == 126 || size == 188) continue; /* deliberately off by one */ lastsize = size; DoComparisonDwa2(pixs, pixt1, pixt2, pixt3, pixt4, pixt5, pixt6, size); } #endif /* SLOWER_TEST */ pixDestroy(&pixs); pixDestroy(&pixt1); pixDestroy(&pixt2); pixDestroy(&pixt3); pixDestroy(&pixt4); pixDestroy(&pixt5); pixDestroy(&pixt6); return 0; }