[flutter] 플러터(Flutter)에서 OCR 기능 구현 방법은?

이번 포스팅에서는 Flutter 앱에서 OCR(광학 문자 인식) 기능을 구현하는 방법에 대해 알아보겠습니다. OCR은 이미지 또는 사진의 텍스트를 감지하고 읽을 수 있는 기술로, 텍스트를 포함한 이미지나 사진에서 텍스트를 추출하여 사용할 수 있게 해줍니다.

1. OCR을 위한 라이브러리 선택

먼저 Flutter 앱에서 OCR 기능을 구현하기 위해 사용할 수 있는 라이브러리를 선택해야 합니다. 여러 가지 라이브러리 중에서는 Google의 ML Kit나 Tesseract OCR 등을 활용할 수 있습니다.

2. ML Kit를 사용한 OCR 구현

ML Kit는 Vision API를 통해 이미지에서 텍스트를 감지하고 읽을 수 있는 강력한 기능을 제공합니다. 이를 Flutter 앱에서 사용하기 위해 firebase_ml_vision 플러그인을 이용할 수 있습니다.

Future<void> readTextFromImage() async {
  final FirebaseVisionImage visionImage = FirebaseVisionImage.fromFile(_imageFile);
  final TextRecognizer textRecognizer = FirebaseVision.instance.textRecognizer();
  final VisionText visionText = await textRecognizer.processImage(visionImage);
  for (TextBlock block in visionText.blocks) {
    for (TextLine line in block.lines) {
      for (TextElement word in line.elements) {
        print(word.text);
      }
    }
  }
  textRecognizer.close();
}

위 코드에서 _imageFile은 OCR을 적용할 이미지 파일을 나타내며, processImage 메서드를 통해 이미지에서 텍스트를 추출할 수 있습니다.

3. Tesseract OCR를 통한 구현

또 다른 방법으로는 Tesseract OCR을 사용하는 방법이 있습니다. Flutter에서는 flutter_tesseract_ocr 패키지를 이용하여 Tesseract OCR을 활용할 수 있습니다.

final FirebaseVisionImage visionImage = FirebaseVisionImage.fromFile(_imageFile);
final TextRecognizer textRecognizer = FirebaseVision.instance.textRecognizer();
final VisionText visionText = await textRecognizer.processImage(visionImage);
for (TextBlock block in visionText.blocks) {
  for (TextLine line in block.lines) {
    for (TextElement word in line.elements) {
      print(word.text);
    }
  }
}
textRecognizer.close();

요약

이러한 방법들을 통해 Flutter 앱에서 OCR 기능을 추가하여 이미지나 사진에서 텍스트를 추출하고 활용할 수 있습니다. OCR은 다양한 애플리케이션에서 유용하게 활용될 수 있으며, Flutter를 통해 간단하게 구현할 수 있습니다.

다음 예제에서는 firebase_ml_vision 패키지와 flutter_tesseract_ocr 패키지를 사용하여 두 가지 방법으로 OCR 기능을 구현하는 방법을 보여주었습니다.

참고 자료