Click to upload or drag & drop
JPG, PNG, WebP, HEIC
Threshold 0 = auto (Otsu's method). Higher values remove more background.
Bright, even light with no shadows or glare across the paper. Natural daylight near a window works well.
Hold the camera directly above the page, not at an angle. Skewed photos confuse the layout detector.
Use your phone camera at full quality. Blurry or low-res images cannot be recovered by preprocessing.
Black or dark blue pen on white paper gives the strongest contrast. Avoid pencil if possible.
Separated block letters recognise well. Joined cursive is a known weakness of all free OCR engines.
Crop the image to just the text area. Backgrounds and edges add noise that hurts recognition.
If the auto setting misses text, try "Uniform block of text" or "Sparse text" in advanced settings.
OCR is not perfect. Always review and correct the text before using it anywhere important.
This tool uses Tesseract.js, the JavaScript port of the Tesseract OCR engine originally developed by HP and now maintained by Google. Everything runs in your browser. No image is uploaded to any server. The OCR model downloads once to your browser and processes each image locally in memory.
Before running OCR, the tool preprocesses your image: it upscales small images, converts to greyscale, boosts contrast, and applies Otsu's method for automatic binary thresholding. This significantly improves accuracy for handwriting compared to feeding the raw image directly to the OCR engine. In auto mode, it also runs multiple preprocessing variants and picks whichever produces the highest recognition confidence.
Tesseract performs very well on printed handwriting, typed text, and clear block letters. It struggles with joined cursive writing because the underlying model was trained mostly on printed documents. For cursive, expect to manually correct significant portions of the output. If you need highly accurate cursive recognition, paid services like Google Cloud Vision or Microsoft Azure Read API do a much better job but cost money and require sending images to their servers.