Example #1
0
  /**
   * Test of TessBaseAPIGetUTF8Text method, of class TessAPI1.
   *
   * @throws java.lang.Exception
   */
  @Test
  public void testTessBaseAPIGetUTF8Text_Pix() throws Exception {
    logger.info("TessBaseAPIGetUTF8Text_Pix");
    String expResult = expOCRResult;
    File tiff = new File(this.testResourcesDataPath, "eurotext.tif");
    Leptonica leptInstance = Leptonica.INSTANCE;
    Pix pix = leptInstance.pixRead(tiff.getPath());
    TessAPI1.TessBaseAPIInit3(handle, datapath, language);
    TessAPI1.TessBaseAPISetImage2(handle, pix);
    Pointer utf8Text = TessAPI1.TessBaseAPIGetUTF8Text(handle);
    String result = utf8Text.getString(0);
    TessAPI1.TessDeleteText(utf8Text);
    logger.info(result);

    // release Pix resource
    PointerByReference pRef = new PointerByReference();
    pRef.setValue(pix.getPointer());
    leptInstance.pixDestroy(pRef);

    assertEquals(expResult, result.substring(0, expResult.length()));
  }
Example #2
0
  /**
   * Test of TessBaseAPIGetComponentImages method, of class TessAPI1.
   *
   * @throws java.lang.Exception
   */
  @Test
  public void testTessBaseAPIGetComponentImages() throws Exception {
    logger.info("TessBaseAPIGetComponentImages");
    File image = new File(this.testResourcesDataPath, "eurotext.png");
    int expResult = 12; // number of lines in the test image
    Pix pix = Leptonica1.pixRead(image.getPath());
    TessAPI1.TessBaseAPIInit3(handle, datapath, language);
    TessAPI1.TessBaseAPISetImage2(handle, pix);
    PointerByReference pixa = null;
    PointerByReference blockids = null;
    Boxa boxes =
        TessAPI1.TessBaseAPIGetComponentImages(
            handle, TessPageIteratorLevel.RIL_TEXTLINE, TRUE, pixa, blockids);
    //        boxes = TessAPI1.TessBaseAPIGetRegions(handle, pixa); // equivalent to
    // TessPageIteratorLevel.RIL_BLOCK
    int boxCount = Leptonica1.boxaGetCount(boxes);
    for (int i = 0; i < boxCount; i++) {
      Box box = Leptonica1.boxaGetBox(boxes, i, L_CLONE);
      if (box == null) {
        continue;
      }
      TessAPI1.TessBaseAPISetRectangle(handle, box.x, box.y, box.w, box.h);
      Pointer utf8Text = TessAPI1.TessBaseAPIGetUTF8Text(handle);
      String ocrResult = utf8Text.getString(0);
      TessAPI1.TessDeleteText(utf8Text);
      int conf = TessAPI1.TessBaseAPIMeanTextConf(handle);
      System.out.print(
          String.format(
              "Box[%d]: x=%d, y=%d, w=%d, h=%d, confidence: %d, text: %s",
              i, box.x, box.y, box.w, box.h, conf, ocrResult));
    }

    // release Pix resource
    PointerByReference pRef = new PointerByReference();
    pRef.setValue(pix.getPointer());
    Leptonica1.pixDestroy(pRef);

    assertEquals(expResult, boxCount);
  }