Skip to content

Commit

Permalink
Use Leptonica1 instead of Leptonica class
Browse files Browse the repository at this point in the history
  • Loading branch information
nguyenq committed Dec 26, 2022
1 parent ebbd209 commit 297745e
Showing 1 changed file with 48 additions and 50 deletions.
98 changes: 48 additions & 50 deletions src/test/java/net/sourceforge/lept4j/SpeckleRemovalTest.java
Expand Up @@ -37,10 +37,8 @@ public class SpeckleRemovalTest {
private final String testResourcesPath = "src/test/resources/test-data";
private final String testResultsPath = "target/test-classes/test-results/";

Leptonica instance;

public SpeckleRemovalTest() {
instance = new LeptonicaImpl().getInstance();

}

@BeforeAll
Expand Down Expand Up @@ -93,7 +91,7 @@ public void testDespeckle() throws Exception {
PointerByReference pargv = new PointerByReference(new StringArray(argv));
PointerByReference prp = new PointerByReference();

// if (instance.regTestSetup(argc, pargv, prp) == 1) {
// if (Leptonica1.regTestSetup(argc, pargv, prp) == 1) {
// System.err.print("Failed Test Setup");
// throw new Exception("Failed Test Setup");
// }
Expand All @@ -103,61 +101,61 @@ public void testDespeckle() throws Exception {

String filename = "w91frag.jpg";
File image = new File(testResourcesPath, filename);
Pix pixs = instance.pixRead(image.getPath());
Pix pixs = Leptonica1.pixRead(image.getPath());

/* Normalize for rapidly varying background */
pixa1 = instance.pixaCreate(0);
instance.pixaAddPix(pixa1, pixs, ILeptonica.L_INSERT);
instance.regTestWritePixAndCheck(rp, pixs, IFF_JFIF_JPEG); /* 0 */
instance.pixWrite(testResultsPath + "result0.jpg", pixs, ILeptonica.IFF_JFIF_JPEG); /* 0 */
pix1 = instance.pixBackgroundNormFlex(pixs, 7, 7, 1, 1, 10);
instance.pixaAddPix(pixa1, pix1, ILeptonica.L_INSERT);
instance.regTestWritePixAndCheck(rp, pix1, IFF_JFIF_JPEG); /* 1 */
instance.pixWrite(testResultsPath + "result1.jpg", pix1, ILeptonica.IFF_JFIF_JPEG); /* 1 */
pixa1 = Leptonica1.pixaCreate(0);
Leptonica1.pixaAddPix(pixa1, pixs, ILeptonica.L_INSERT);
Leptonica1.regTestWritePixAndCheck(rp, pixs, IFF_JFIF_JPEG); /* 0 */
Leptonica1.pixWrite(testResultsPath + "result0.jpg", pixs, ILeptonica.IFF_JFIF_JPEG); /* 0 */
pix1 = Leptonica1.pixBackgroundNormFlex(pixs, 7, 7, 1, 1, 10);
Leptonica1.pixaAddPix(pixa1, pix1, ILeptonica.L_INSERT);
Leptonica1.regTestWritePixAndCheck(rp, pix1, IFF_JFIF_JPEG); /* 1 */
Leptonica1.pixWrite(testResultsPath + "result1.jpg", pix1, ILeptonica.IFF_JFIF_JPEG); /* 1 */

/* Remove the background */
pix2 = instance.pixGammaTRCMasked(null, pix1, null, 1.0f, 100, 175);
instance.regTestWritePixAndCheck(rp, pix2, IFF_JFIF_JPEG); /* 2 */
instance.pixWrite(testResultsPath + "result2.jpg", pix2, ILeptonica.IFF_JFIF_JPEG); /* 2 */
pix2 = Leptonica1.pixGammaTRCMasked(null, pix1, null, 1.0f, 100, 175);
Leptonica1.regTestWritePixAndCheck(rp, pix2, IFF_JFIF_JPEG); /* 2 */
Leptonica1.pixWrite(testResultsPath + "result2.jpg", pix2, ILeptonica.IFF_JFIF_JPEG); /* 2 */

/* Binarize */
pix3 = instance.pixThresholdToBinary(pix2, 180);
instance.pixaAddPix(pixa1, pix3, ILeptonica.L_INSERT);
instance.regTestWritePixAndCheck(rp, pix3, IFF_PNG); /* 3 */
instance.pixWrite(testResultsPath + "result3.png", pix3, ILeptonica.IFF_PNG); /* 3 */
pix3 = Leptonica1.pixThresholdToBinary(pix2, 180);
Leptonica1.pixaAddPix(pixa1, pix3, ILeptonica.L_INSERT);
Leptonica1.regTestWritePixAndCheck(rp, pix3, IFF_PNG); /* 3 */
Leptonica1.pixWrite(testResultsPath + "result3.png", pix3, ILeptonica.IFF_PNG); /* 3 */

/* Remove the speckle noise up to 2x2 */
sel1 = instance.selCreateFromString(selstr2, 4, 4, "speckle2");
pix4 = instance.pixHMT(null, pix3, sel1.getPointer());
instance.pixaAddPix(pixa1, pix4, ILeptonica.L_INSERT);
sel2 = instance.selCreateBrick(2, 2, 0, 0, ILeptonica.SEL_HIT);
pix5 = instance.pixDilate(null, pix4, sel2.getPointer());
instance.pixaAddPix(pixa1, pix5, ILeptonica.L_INSERT);
instance.regTestWritePixAndCheck(rp, pix5, IFF_PNG); /* 4 */
instance.pixWrite(testResultsPath + "result4.png", pix5, ILeptonica.IFF_PNG); /* 4 */
pix6 = instance.pixSubtract(null, pix3, pix5);
instance.pixaAddPix(pixa1, pix6, ILeptonica.L_INSERT);
instance.regTestWritePixAndCheck(rp, pix6, IFF_PNG); /* 5 */
instance.pixWrite(testResultsPath + "result5.png", pix6, ILeptonica.IFF_PNG); /* 5 */
sel1 = Leptonica1.selCreateFromString(selstr2, 4, 4, "speckle2");
pix4 = Leptonica1.pixHMT(null, pix3, sel1.getPointer());
Leptonica1.pixaAddPix(pixa1, pix4, ILeptonica.L_INSERT);
sel2 = Leptonica1.selCreateBrick(2, 2, 0, 0, ILeptonica.SEL_HIT);
pix5 = Leptonica1.pixDilate(null, pix4, sel2.getPointer());
Leptonica1.pixaAddPix(pixa1, pix5, ILeptonica.L_INSERT);
Leptonica1.regTestWritePixAndCheck(rp, pix5, IFF_PNG); /* 4 */
Leptonica1.pixWrite(testResultsPath + "result4.png", pix5, ILeptonica.IFF_PNG); /* 4 */
pix6 = Leptonica1.pixSubtract(null, pix3, pix5);
Leptonica1.pixaAddPix(pixa1, pix6, ILeptonica.L_INSERT);
Leptonica1.regTestWritePixAndCheck(rp, pix6, IFF_PNG); /* 5 */
Leptonica1.pixWrite(testResultsPath + "result5.png", pix6, ILeptonica.IFF_PNG); /* 5 */

/* Remove the speckle noise up to 3x3 */
sel3 = instance.selCreateFromString(selstr3, 5, 5, "speckle3");
pix7 = instance.pixHMT(null, pix3, sel3.getPointer());
instance.pixaAddPix(pixa1, pix7, ILeptonica.L_INSERT);
sel4 = instance.selCreateBrick(3, 3, 0, 0, ILeptonica.SEL_HIT);
pix8 = instance.pixDilate(null, pix7, sel4.getPointer());
instance.pixaAddPix(pixa1, pix8, ILeptonica.L_INSERT);
instance.regTestWritePixAndCheck(rp, pix8, IFF_PNG); /* 6 */
instance.pixWrite(testResultsPath + "result6.png", pix8, ILeptonica.IFF_PNG); /* 6 */
pix9 = instance.pixSubtract(null, pix3, pix8);
instance.pixaAddPix(pixa1, pix9, ILeptonica.L_INSERT);
instance.regTestWritePixAndCheck(rp, pix9, IFF_PNG); /* 7 */
instance.pixWrite(testResultsPath + "result7.png", pix9, ILeptonica.IFF_PNG); /* 7 */

pix10 = instance.pixaDisplayTiledInColumns(pixa1, 3, 1.0f, 30, 2);
instance.pixDisplayWithTitle(pix10, 0, 0, null, 1);
instance.regTestWritePixAndCheck(rp, pix10, IFF_JFIF_JPEG); /* 8 */
instance.pixWrite(testResultsPath + "result8.jpg", pix10, ILeptonica.IFF_JFIF_JPEG); /* 8 */
sel3 = Leptonica1.selCreateFromString(selstr3, 5, 5, "speckle3");
pix7 = Leptonica1.pixHMT(null, pix3, sel3.getPointer());
Leptonica1.pixaAddPix(pixa1, pix7, ILeptonica.L_INSERT);
sel4 = Leptonica1.selCreateBrick(3, 3, 0, 0, ILeptonica.SEL_HIT);
pix8 = Leptonica1.pixDilate(null, pix7, sel4.getPointer());
Leptonica1.pixaAddPix(pixa1, pix8, ILeptonica.L_INSERT);
Leptonica1.regTestWritePixAndCheck(rp, pix8, IFF_PNG); /* 6 */
Leptonica1.pixWrite(testResultsPath + "result6.png", pix8, ILeptonica.IFF_PNG); /* 6 */
pix9 = Leptonica1.pixSubtract(null, pix3, pix8);
Leptonica1.pixaAddPix(pixa1, pix9, ILeptonica.L_INSERT);
Leptonica1.regTestWritePixAndCheck(rp, pix9, IFF_PNG); /* 7 */
Leptonica1.pixWrite(testResultsPath + "result7.png", pix9, ILeptonica.IFF_PNG); /* 7 */

pix10 = Leptonica1.pixaDisplayTiledInColumns(pixa1, 3, 1.0f, 30, 2);
Leptonica1.pixDisplayWithTitle(pix10, 0, 0, null, 1);
Leptonica1.regTestWritePixAndCheck(rp, pix10, IFF_JFIF_JPEG); /* 8 */
Leptonica1.pixWrite(testResultsPath + "result8.jpg", pix10, ILeptonica.IFF_JFIF_JPEG); /* 8 */

LeptUtils.dispose(sel1);
LeptUtils.dispose(sel2);
Expand All @@ -166,6 +164,6 @@ public void testDespeckle() throws Exception {
LeptUtils.dispose(pix2);
LeptUtils.dispose(pix10);
LeptUtils.dispose(pixa1);
// instance.regTestCleanup(rp);
// Leptonica1.regTestCleanup(rp);
}
}

0 comments on commit 297745e

Please sign in to comment.