Class DocumentScanner

java.lang.Object
com.codename1.ai.vision.DocumentScanner
All Implemented Interfaces:
VisionAnalyzer<DocumentScanResult>, AutoCloseable

public final class DocumentScanner extends Object

Finds a page in a photo and returns it flattened, with the perspective corrected.

DocumentScanner scanner = new DocumentScanner();
if (!scanner.isSupported()) {
    // Android's document scanner is an interactive Google flow rather than
    // an analyzer, so this reports unsupported there.
    scanner.close();
    return;
}
scanner.process(VisionImage.fromFile(photoPath)).ready(result -> {
    for (int i = 0; i < result.getPageCount(); i++) {
        pages.add(EncodedImage.create(result.getPage(i)));
    }
    scanner.close();
}).except(error -> {
    Log.e(error);
    scanner.close();
});

This is a still-image analyzer: capture the photo however you like -- the Capture API, a CameraSession, or the gallery -- and hand the bytes over.

  • Constructor Details

    • DocumentScanner

      public DocumentScanner()
      Creates an analyzer using the platform default backend and options.
      See Also:
    • DocumentScanner

      public DocumentScanner(VisionOptions options)
      Creates a reusable analyzer with explicit backend and result options.
      Parameters:
      options - configuration captured by this analyzer; null uses defaults
  • Method Details

    • isSupported

      public final boolean isSupported()
      Description copied from interface: VisionAnalyzer
      Tests the exact feature/backend pair configured for this analyzer.
      Specified by:
      isSupported in interface VisionAnalyzer<T>
      Returns:
      whether this analyzer's feature/backend is available and open
    • process

      public final AsyncResource<DocumentScanResult> process(VisionImage image)
      Starts one analysis using the retained native backend.
      Specified by:
      process in interface VisionAnalyzer<T>
      Parameters:
      image - immutable encoded or raw input
      Returns:
      asynchronous typed result
    • close

      public final void close()
      Idempotently releases the retained native backend.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface VisionAnalyzer<T>