🔍 Image to Text (OCR)
Extract text from an image in your browser, with a per-word confidence score so you can see where the recognition is shaky. 13 languages, no upload.
Choose an image, drop it here, or paste a screenshot
Read in this tab. The image is never uploaded.
Getting this right matters more than it sounds — the engine uses the language to decide between characters that look alike. Each language downloads its own data the first time you use it, then it is cached.
What Image to Text (OCR) Does
Optical character recognition turns a picture of text back into text, and its defining property is that it fails quietly. A bad conversion does not throw an error or return gibberish — it returns real words, spelled correctly, that are not the words on the page. "rn" becomes "m", "1" becomes "l", "0" becomes "O", and the result reads perfectly while being wrong.
That is why this page reports confidence. The engine produces a score for every word it recognises, and almost every OCR tool discards it before showing you anything. Here the overall figure is stated and every word scoring below 70% is listed, because knowing which five words to check is worth more than a slightly better average.
The other half of getting a usable result is the input. Tesseract was built for scanned documents, and its own documentation recommends at least 300 DPI. A photograph taken at an angle in poor light is nothing like that, which is most of the reason people conclude OCR "does not work". So small images are upscaled toward that target, converted to greyscale, and contrast-stretched between the 1st and 99th brightness percentiles. Those two numbers are chosen deliberately: ink is a small minority of the pixels on a page, commonly between 1 and 4%, so a more generous 5th-percentile black point lands inside the paper and the correction does nothing at all on exactly the pages that need it.
Everything runs in your browser as WebAssembly. The language data is fetched once from a CDN and cached; the image itself is never transmitted.
How to Use Image to Text (OCR)
- Add an image, drop it on the box, or paste a screenshot
- Choose the language of the text — this matters for accuracy, not just for the alphabet
- Leave the clean-up on unless the result looks worse with it
- Read the confidence figure, check the highlighted words, then copy the text
What the confidence figure means
Reported per word by the engine. The bands below are practical guidance, not thresholds defined by Tesseract.
| Overall confidence | What to expect | What to do |
|---|---|---|
| 95%+ | Essentially clean — typically a screenshot or a proper scan | Use it as-is |
| 85–95% | Good; occasional wrong character in unusual words | Skim the highlighted words |
| 70–85% | Usable draft with real errors scattered through it | Proofread against the original |
| Below 70% | Unreliable — plausible words that are often wrong | Re-photograph rather than proofread |
What actually improves a result, in order
Input quality dominates. No amount of post-processing rescues a photograph taken at an angle.
| Change | Effect | Why |
|---|---|---|
| Photograph straight on, not at an angle | Large | Perspective distorts letterforms the engine matches against |
| Get closer so the text is physically larger | Large | Tesseract’s documentation asks for 300 DPI or better |
| Even, diffuse light with no shadow across the page | Large | Shadow gradients defeat a global threshold |
| Select the correct language | Large | The language model resolves lookalike characters |
| Greyscale and contrast stretch | Moderate | Applied here automatically |
| Upscaling a small image | Moderate | Only helps up to a point; it adds no detail |
How to Read Your Result
A screenshot is the ideal input
It is already pixel-perfect, evenly lit, straight on, and at native resolution. If the text you need exists on a screen somewhere, screenshotting it will beat photographing the printed version every time — usually at well over 98% confidence.
Handwriting is out of scope, not merely hard
Tesseract is a printed-text engine with no handwriting model behind it. Neat block capitals sometimes partly come through; cursive does not. Pages advertising handwriting recognition on top of Tesseract are describing something the engine does not do.
Layout is a separate problem from recognition
The output is running text. Columns interleave, tables lose their structure and captions land wherever they fell. Reconstructing document structure from glyph positions is a genuinely harder problem than identifying the glyphs, and no tool on this search term solves it either.
Limitations & Accuracy Notes
- Printed text only. There is no handwriting or cursive support.
- Layout, columns, tables and reading order are not preserved — the result is running text.
- One language at a time. A page mixing two scripts will read one of them badly.
- Each language downloads its own trained data on first use, so the first run in a new language needs a connection.
- Very large images are slow, because recognition runs on your own device rather than a server farm.
- The confidence score is the engine’s own estimate. It is a good guide and it is not a guarantee — a confidently wrong word is possible.
Frequently Asked Questions
How accurate is OCR, and how would I know?
Why does it clean up my image first?
Can it read handwriting?
Does choosing the right language matter?
Will it keep my layout, columns or tables?
Is my image uploaded?
My result is poor. What actually helps?
References & Further Reading
- Tesseract OCR — The engine, Apache 2.0 licensed — which is why it can ship on an ad-supported page
- Tesseract — Improving the quality of the output — Source of the 300 DPI recommendation the preprocessing targets
- Tesseract.js — The WebAssembly build that runs the engine in your browser