Tips

Why Your OCR Results Are Bad (And 10 Fixes That Actually Help)

· 10 min read

Bad OCR is usually not the app’s fault. It’s the image. I spent an embarrassing amount of time hopping between OCR apps, convinced they were all broken, before I realized I was feeding them terrible photos every single time. Blurry shots taken in bad lighting, angled sideways on a messy desk. No wonder the output was nonsense.

Once I started fixing the input instead of blaming the tool, my results got dramatically better—like going from 60% accuracy to 95%+ on the same document. Here’s the main reason OCR gives you garbage and 10 fixes that actually work, plus when to give up and type it.

The #1 reason OCR gives you garbage

It’s the image, not the app. Blurry, angled, dark, or low-contrast photos make every OCR engine struggle—even the really expensive enterprise ones. The software is guessing at shapes; if the shapes are unclear, the guess is wrong. Think of it this way: if you squint at a blurry photo and can’t tell whether a letter is an “a” or an “o,” the OCR engine can’t either. It’s not magic. It’s pattern recognition.

So before you try another app or another setting, try a better photo: sharper, straight-on, well lit, and with clear contrast between text and background. Most “bad OCR” problems improve a lot with that alone. I’ve had documents go from unreadable soup to near-perfect just by re-taking the photo with decent light and a steady hand.

Fix 1: Lighting is everything

Dim or uneven light creates shadows and noise. The camera boosts gain to compensate, and the image gets grainy. Text edges blur into the background. I once tried to scan a lease agreement at a restaurant table—dim overhead lights, candles on the table—and the OCR output looked like someone had a stroke on the keyboard. “Th3 t€nant sh@ll…” Not useful.

Fix: Use even, diffused light. A lamp off to the side works great. Daylight from a window is even better—just not direct sunlight, which creates harsh shadows. Overhead fluorescents are fine too. The test is simple: can you read the text clearly with your own eyes? If you’re squinting, the camera is squinting too.

One trick I use: if I’m scanning something at my desk and the overhead light casts a shadow from my hand or phone, I’ll turn on my desk lamp and angle it so the light comes from the opposite side. Kills the shadow instantly. Takes three seconds and saves a lot of cleanup.

Fix 2: Shoot straight-on, not at an angle

When you shoot at an angle, the text is stretched, skewed, and the characters on one side are smaller than the other. OCR expects roughly horizontal, evenly spaced characters. Give it a trapezoid and it starts guessing.

Fix: Hold the phone directly above the page so the lens is perpendicular to the surface. If you’re scanning something on a wall or a whiteboard, stand directly in front of it. Use the app’s guide frame if it has one—most do, and they’re there for exactly this reason.

I learned this one the hard way with a recipe my grandmother wrote on an index card. Shot it from a steep angle because I was lazy, and the OCR turned her “1 cup flour” into “l cug tlour.” Re-took it straight-on and got it nearly perfect. Straight-on = fewer wrong characters.

Fix 3: Crop before scanning

If the text is a small part of a big image—desk, coffee cup, background clutter, wide margins—the engine has to find the text in a sea of irrelevant pixels. It sometimes picks up text from random objects in the background (I’ve had it try to OCR the brand name on a pen sitting next to my document).

Fix: Crop the image so the text fills most of the frame. You can crop in your Photos app first or use the crop tool in your OCR app. Less background = better detection, fewer false positives, and fewer errors on the actual text you care about.

A good rule of thumb: the text should take up at least 70-80% of the cropped image. You don’t need to be pixel-perfect, but don’t leave huge margins of empty desk around your document.

Fix 4: Higher resolution = better results

Tiny or low-res text is hard to read—for you and for OCR. If each character is only 10-15 pixels tall, the engine can’t distinguish between similar shapes like “c” and “e” or “l” and “1.”

Fix: Get closer (without going blurry) or use a higher resolution setting on your camera. If you’re scanning from a screen, avoid a tiny thumbnail—capture at full size or zoom in on the section you need. More pixels per character = better recognition.

There’s a sweet spot here. You don’t need a 48-megapixel photo of a Post-it note. But if you’re standing four feet away from a whiteboard and snapping a photo, the text in the corners is going to be tiny and muddy. Move closer. Take two photos if the board is big. Each character should be clearly readable when you zoom in on the image.

Fix 5: Dark text on light background

OCR is trained mostly on dark text on light backgrounds—because that’s what most printed text looks like. Light text on dark backgrounds, or colored text on colored backgrounds, is harder. Red on orange? Good luck.

Fix: When you can control it, provide dark text on white or light gray. If the original is reversed (white text on a dark background, like a chalkboard or a dark-mode screenshot), some apps have an “invert” or “negative” option. Try that—it can make a surprisingly big difference.

I ran into this with a friend’s wedding invitation that had gold lettering on a dark navy background. Beautiful design, terrible for OCR. Inverting the image in the Photos app before scanning got about 80% of the text right, versus maybe 30% without inverting.

Fix 6: Choose the right language setting

If the app assumes English and the text is in German, French, or any other language, you get wrong characters or outright garbage. Accented characters get dropped or misread. “Straße” becomes “StraBe.” “Café” becomes “Caf6.”

Fix: Set the app’s language to the language of the document. Many apps have “auto-detect” but explicitly choosing the language is often more reliable, especially for languages with special characters. For mixed-language documents, pick the dominant one first. If you need the secondary language text too, run a second pass with that language selected.

This matters more than people think. Language models inside OCR don’t just handle accents—they also use word-level context to decide ambiguous characters. An OCR engine set to German knows that “sch” is a common combination and won’t turn it into “5ch.”

Fix 7: Clean the camera lens (seriously)

This sounds dumb. It’s not. A smudged lens softens the entire image uniformly, and you might not even notice it on the preview screen. But the OCR engine notices. Every character has slightly fuzzy edges, and fuzzy edges lead to wrong guesses.

Fix: Wipe the lens with a soft cloth—your shirt works in a pinch. Do it whenever you notice your photos look a bit soft or hazy. It takes five seconds. I started doing this as a habit before scanning anything important, and it’s one of those tiny things that eliminates a whole category of errors.

Fix 8: Use the right app for the right text type

Handwriting, receipts, dense paragraphs, and street signs are all different beasts. An OCR engine optimized for printed book text might choke on a crumpled receipt with thermal-printed text. One built for receipts might not handle cursive handwriting well.

Fix: Use an app that’s built for the job. If you’re scanning handwritten notes, use something that explicitly supports handwriting recognition. Handwriting tips here. For a general “image to text” workflow on iPhone, see this guide. Textora, for instance, handles both printed and handwritten text well because it uses modern AI-based recognition.

Matching the tool to the task is one of the biggest accuracy wins you can get. I’ve seen people try to use a general-purpose scanner app on handwritten meeting notes and get frustrated when the output is gibberish. Switch to an app that actually supports handwriting and the same notes come through at 85-90% accuracy.

Fix 9: Free online OCR vs app OCR — why results differ

Free online OCR is convenient—upload an image, get text back, no install needed. But there are trade-offs. Many free online tools use older or simpler engines. Some compress your image before processing, which kills small text. And your image gets uploaded to a server you don’t control, which matters if the document is private.

Fix: For quick, clean, one-off text from a crisp document, free online OCR can be totally fine. For anything important, messy, or private—faded receipts, handwritten notes, contracts, medical records—try a dedicated app like Textora that runs recognition on your device. You typically get better accuracy because the image isn’t compressed, the engine is more capable, and there’s no “your file was too large so we downscaled it” surprise.

I use free online tools for quick stuff—like grabbing a quote from a screenshot of a tweet. But for anything where accuracy matters or the document is sensitive, I always go with an on-device app. The difference in output quality is noticeable, and not having to worry about where my images end up is a nice bonus.

Fix 10: When to give up and just type it manually

Sometimes the image can’t be improved. It’s a screenshot of a screenshot (yes, people send these). The text is 8 pixels tall. The paper is torn, water-damaged, and faded. You’ve tried better lighting, angle, crop, and language, and the output is still useless.

Fix: Type it. Seriously. A minute of typing can beat 10 minutes of correcting bad OCR output word by word. I’ve been there—stubbornly re-scanning a barely legible printout five times, tweaking settings, trying different apps, and eventually realizing I could have just typed the 40 words in the time I spent trying to make OCR work. No shame in knowing when a tool isn’t the right tool.

A rough guideline: if you’ve tried two or three scans with different settings and the output is still below 80% accurate, you’ll spend more time fixing it than typing from scratch. Cut your losses.


So: improve the image first (light, angle, crop, resolution, contrast, language, lens). Pick the right tool for the text type. Know when to stop and type. These aren’t complicated fixes—most of them take under 30 seconds—but they’re the difference between getting clean text on the first try and wrestling with garbled output for ten minutes.

For more on getting text out of images, see how I convert images to text on my iPhone, handwriting to text, and what OCR is and how it works.

Ready to extract text from photos in seconds?

Textora uses AI to scan and organize text from any image — receipts, menus, handwritten notes, and more. Works offline, supports 90+ languages.

Download on the App Store