# TextRecognizer

public interface **TextRecognizer** implements [Detector](https://developers.google.com/android/reference/com/google/mlkit/vision/interfaces/Detector)\<[Text](https://developers.google.com/android/reference/com/google/mlkit/vision/text/Text)\> [OptionalModuleApi](https://developers.google.com/android/reference/com/google/android/gms/common/api/OptionalModuleApi) `https://developers.google.com/android/reference/com/google/mlkit/vision/text/TextRecognition`
client for performing optical character recognition(OCR) on an input image to detect
latin-based characters.

A `https://developers.google.com/android/reference/com/google/mlkit/vision/text/TextRecognizer`
is created via `https://developers.google.com/android/reference/com/google/mlkit/vision/text/TextRecognition#getClient(com.google.mlkit.vision.text.TextRecognizerOptionsInterface)`. See the code example
below.

          TextRecognizer textRecognizer = TextRecognition.getClient(TextRecognizerOptions.DEFAULT_OPTIONS);
     
To perform OCR on an image, you first need to create an instance of `https://developers.google.com/android/reference/com/google/mlkit/vision/common/InputImage` from a `https://developer.android.com/reference/java/nio/ByteBuffer.html`, `https://developer.android.com/reference/android/graphics/Bitmap.html`, etc. See `https://developers.google.com/android/reference/com/google/mlkit/vision/common/InputImage` documentation for more details. For example, the code below creates an `https://developers.google.com/android/reference/com/google/mlkit/vision/common/InputImage` from a `https://developer.android.com/reference/android/graphics/Bitmap.html`.

    InputImage image = InputImage.fromBitmap(bitmap, rotationDegrees);
     
Then the code below can detect texts in the supplied `https://developers.google.com/android/reference/com/google/mlkit/vision/common/InputImage`.

    Task<Text> task = textRecognizer.process(image);
     task.addOnSuccessListener(...).addOnFailureListener(...);
     
### Public Method Summary

|---|---|
| abstract void | [close](https://developers.google.com/android/reference/com/google/mlkit/vision/text/TextRecognizer#close())() Closes the detector and releases its resources. |
| abstract Task\<[Text](https://developers.google.com/android/reference/com/google/mlkit/vision/text/Text)\> | [process](https://developers.google.com/android/reference/com/google/mlkit/vision/text/TextRecognizer#process(com.google.android.odml.image.MlImage))([MlImage](https://developers.google.com/android/reference/com/google/android/odml/image/MlImage) image) Detects latin-based characters from the supplied image. |
| abstract Task\<[Text](https://developers.google.com/android/reference/com/google/mlkit/vision/text/Text)\> | [process](https://developers.google.com/android/reference/com/google/mlkit/vision/text/TextRecognizer#process(com.google.mlkit.vision.common.InputImage))([InputImage](https://developers.google.com/android/reference/com/google/mlkit/vision/common/InputImage) image) Detects latin-based characters from the supplied image. |

### Inherited Method Summary

From interface java.io.Closeable

|---|---|
| abstract void | close() |

From interface java.lang.AutoCloseable

|---|---|
| abstract void | close() |

## Public Methods

#### public abstract void **close** ()

Closes the detector and releases its resources.

#### public abstract Task\<[Text](https://developers.google.com/android/reference/com/google/mlkit/vision/text/Text)\>
**process** ([MlImage](https://developers.google.com/android/reference/com/google/android/odml/image/MlImage) image)

Detects latin-based characters from the supplied image.

This is an experimental API in beta version.

Create an `https://developers.google.com/android/reference/com/google/android/odml/image/MlImage`
object using one of `https://developers.google.com/android/reference/com/google/android/odml/image/MlImage`'s
builder methods. See `https://developers.google.com/android/reference/com/google/android/odml/image/MlImage`
documentation for more details.

If the text recognition model has not been downloaded yet, the returned
`https://developers.google.com/android/reference/com/google/android/gms/tasks/Task` will
contain an `https://developers.google.com/android/reference/com/google/mlkit/common/MlKitException`
with error code `https://developers.google.com/android/reference/com/google/mlkit/common/MlKitException#UNAVAILABLE`.

##### Returns

- a `https://developers.google.com/android/reference/com/google/android/gms/tasks/Task` that asynchronously returns the recognized `https://developers.google.com/android/reference/com/google/mlkit/vision/text/Text`.

#### public abstract Task\<[Text](https://developers.google.com/android/reference/com/google/mlkit/vision/text/Text)\>
**process** ([InputImage](https://developers.google.com/android/reference/com/google/mlkit/vision/common/InputImage) image)

Detects latin-based characters from the supplied image.

Create an `https://developers.google.com/android/reference/com/google/mlkit/vision/common/InputImage`
object using one of `https://developers.google.com/android/reference/com/google/mlkit/vision/common/InputImage`'s
factory methods. See `https://developers.google.com/android/reference/com/google/mlkit/vision/common/InputImage`
documentation for more details.

If the text recognition model has not been downloaded yet, the returned
`https://developers.google.com/android/reference/com/google/android/gms/tasks/Task` will
contain an `https://developers.google.com/android/reference/com/google/mlkit/common/MlKitException`
with error code `https://developers.google.com/android/reference/com/google/mlkit/common/MlKitException#UNAVAILABLE`.

##### Returns

- a `https://developers.google.com/android/reference/com/google/android/gms/tasks/Task` that asynchronously returns the recognized `https://developers.google.com/android/reference/com/google/mlkit/vision/text/Text`.