Open Source OCR Engine for R

Bindings to 'Tesseract': An OCR engine with unicode (UTF-8) support that can recognize over 100 languages out of the box.


Simple example

text <- ocr("http://jeroenooms.github.io/images/testocr.png")
cat(text)

Roundtrip test: render PDF to image and OCR it back to text

library(pdftools)
library(tiff)
 
# A PDF file with some text
setwd(tempdir())
news <- file.path(Sys.getenv("R_DOC_DIR"), "NEWS.pdf")
orig <- pdf_text(news)[1]
 
# Render pdf to jpeg/tiff image
bitmap <- pdf_render_page(news, dpi = 300)
tiff::writeTIFF(bitmap, "page.tiff")
 
# Extract text from images
out <- ocr("page.tiff")
cat(out)
 

On Windows and MacOS the package binary package can be installed from CRAN:

install.packages("tesseract")

Installation from source on Linux or OSX requires the Tesseract library (see below).

On Debian or Ubuntu install libtesseract-dev and libleptonica-dev. Also install tesseract-ocr-eng to run english examples.

sudo apt-get install -y libtesseract-dev libleptonica-dev tesseract-langpack-eng

On Fedora and CentOS we need tesseract-devel and leptonica-devel

sudo yum install tesseract-devel leptonica-devel

On OS-X use tesseract from Homebrew:

brew install tesseract

Tesseract uses training data to perform OCR. Most systems default to English training data. To improve OCR performance for other langauges you can to install the training data from your distribution. For example to install the spanish training data:

On other platforms you can manually download training data from github and store it in a path on disk that you pass in the datapath parameter. Alternatively you can set a default path via the TESSDATA_PREFIX environment variable.

News

1.2

  • Try to fix build for CRAN OS-X, again.

1.1

  • Try to fix build for CRAN OS-X build server
  • Show 'loaded' and 'available' languages in print.tesseract()

1.0

  • Initial CRAN release

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("tesseract")

1.6 by Jeroen Ooms, a month ago


https://github.com/ropensci/tesseract


Report a bug at https://github.com/ropensci/tesseract/issues


Browse source code at https://github.com/cran/tesseract


Authors: Jeroen Ooms


Documentation:   PDF Manual  


Task views: Natural Language Processing


Apache License 2.0 license


Imports Rcpp, curl, rappdirs, digest

Suggests magick, pdftools

Linking to Rcpp

System requirements: Tesseract >= 3.03 (libtesseract-dev / tesseract-devel) and Leptonica (libleptonica-dev / leptonica-devel). On Debian you need to install the English training data separately (tesseract-ocr-eng)


Suggested by magick.


See at CRAN