# Class TextRecognizer

java.lang.Object
com.codename1.ai.vision.TextRecognizer

All Implemented Interfaces:
  `VisionAnalyzer<TextRecognitionResult>, AutoCloseable`

public final class TextRecognizer extends Object

Reads the text in an image. The default recognizes the Latin script; select `VisionOptions.textScript(TextScript)` to read Chinese, Devanagari, Japanese or Korean text.

Reading a photographed receipt or label:

    TextRecognizer recognizer = new TextRecognizer();
    recognizer.process(VisionImage.fromFile(photoPath)).ready(result -> {
        textArea.setText(result.getText());
        recognizer.close();
    }).except(error -> {
        Log.e(error);
        recognizer.close();
    });

Reading text out of the live camera and stopping at the first line that looks like the value you want:

    VisionCameraView<TextRecognitionResult> view =
            new VisionCameraView<TextRecognitionResult>(new TextRecognizer());
    view.setListener(new VisionPipelineListener<TextRecognitionResult>() {
        public void result(TextRecognitionResult text, VisionImage source) {
            for (TextRecognitionResult.TextBlock block : text.getBlocks()) {
                if (block.getText().startsWith("SN-")) {
                    accept(block.getText());
                    return;
                }
            }
        }
        public void error(Throwable error) {
            Log.e(error);
        }
    });

`TextRecognitionResult.getText()` is the whole page in reading order; `TextRecognitionResult.getBlocks()` adds per-region text, confidence, and normalized bounds. Recognize one script per analyzer -- create a second analyzer when a screen needs two.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TextRecognizer()`
  Creates an analyzer using the platform default backend and options, reading the Latin script.
  `TextRecognizer(VisionOptions options)`
  Creates a reusable analyzer with explicit backend and result options.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final void`
  `close()`
  Idempotently releases the retained native backend.
  `final boolean`
  `isSupported()`
  Tests the exact feature/backend pair configured for this analyzer.
  `final AsyncResource<TextRecognitionResult>`
  `process(VisionImage image)`
  Starts one analysis using the retained native backend.

  ### Methods inherited from class Object

  `clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### TextRecognizer

    public TextRecognizer()
    Creates an analyzer using the platform default backend and options, reading the Latin script.
    See Also:
      - `VisionOptions`

  - ### TextRecognizer

    public TextRecognizer(VisionOptions options)
    Creates a reusable analyzer with explicit backend and result options. The writing system comes from `VisionOptions.textScript(TextScript)`.
    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<TextRecognitionResult> 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>`