Tesseract OCR: lesson test 2026-10-11 (passed)
Record test:djrmwhe. Question: Render a self-made text page to a PNG, OCR it with tesseract and check the recognized text.
Answer
On 2026-10-11, the headlesson operator ran all 8 steps of this lesson with Tesseract OCR 5.5.1 (macOS26.5.2 arm64; Homebrew tesseract 5.5.1 and tesseract-lang 4.1.0 already installed (not reinstalled; upstream latest is 5.5.3); poppler 26.04.0 for pdftoppm; self-made text page only), and all passed. The final Next step is advice and was not run. No independent check has been reviewed. This is the operator's own run, not a vendor claim.
Tested on
- Test date: 2026-10-11
- Record confirmed: 2026-10-11
- Version: 5.5.1
- Environment: macOS26.5.2 arm64; Homebrew tesseract 5.5.1 and tesseract-lang 4.1.0 already installed (not reinstalled; upstream latest is 5.5.3); poppler 26.04.0 for pdftoppm; self-made text page only
- Result: passed, 8/8 steps
Lesson steps and what happened
- 1. [passed] command -v tesseract || brew install tesseract
- 2. [passed] tesseract --version
- 3. [passed] tesseract --list-langs
- 4. [passed] printf 'Invoice 2026-001\nTotal: 42 apples\n' > note.txt
- 5. [passed] cupsfilter -m application/pdf note.txt > note.pdf
- 6. [passed] pdftoppm -r 300 -png -singlefile note.pdf scan
- 7. [passed] tesseract scan.png out -l eng
- 8. [passed] grep -c 'Total: 42 apples' out.txt
Next (advice, not tested)
Next: Agree with the user on the real images, their languages and the output format; check that the language codes appear in tesseract --list-langs, OCR one page with -l <lang> (add tsv to get word confidences), and compare a sample of the text with the image before processing the rest.
Cautions recorded with the lesson
These notes come from the lesson. Some describe failures seen in tests; others are general cautions. Each one is not a separately tested result.
- The Homebrew tesseract formula contains only the eng and osd language data; other languages need brew install tesseract-lang.
- An unavailable language (for example -l xxx) printed "Failed loading language" and exited 1 in the test; check tesseract --list-langs first.
- The second argument is an output base name; tesseract scan.png out writes out.txt. Pass - as the output base to print to standard output.
- Low-resolution input is misread without an error; a 50 dpi render gave "Inyatce 2026" and exit 0 in the test, while a 300 dpi render was read correctly. Check the text, not only the exit code.
- Appending the config names tsv, hocr or pdf selects word-level TSV with positions and confidence, hOCR, or a searchable PDF with a text layer.
- Steps 4 and 5 use macOS cupsfilter and poppler's pdftoppm only to make a test image; any PNG of printed text works as input.
- Confirm: Check which images are read, which language data is used and where the output file is written (an existing out.txt is replaced), and spot-check the OCR text against the image before passing it to a downstream step.
What this record does not show
- Not measured in this run: Tesseract 5.5.3 (the release current at test time).
- Not measured in this run: installing the language data from scratch.
- Not measured in this run: non-Latin scripts on real scans.
- Not measured in this run: photos, skewed or noisy scans.
- Not measured in this run: multi-page TIFF.
- Not measured in this run: the --psm and --oem choices.
- Not measured in this run: training.
- Whether an agent new to this tool can use it from this record alone (the operator wrote and ran the lesson).
- Comparisons between models or clients.
- Production use, accounts, or real customer data.
- Behaviour of the latest version (the test is tied to the version and date below).
- The final "Next" step is advice and was not part of the test.
Primary record
Operator record: a past lesson trial (legacy). It is not claimed to meet level L1 of run-task-contract/0.1.0.
Independent check
Independent check: not yet reviewed. (Whether an independent check exists has not been looked up for this record.)
Evidence
A non-public test report exists and is not published, so third parties cannot check it directly.
Retrieve over MCP
headlesson_get id="app:tesseract" sections ["lesson","gotchas"] on https://mcp.headlesson.com/mcp
Source version
This page is built from the catalog record app:tesseract at revision 0a66d9cd024b. It is not rewritten when the current lesson changes; a new test gets a new record ID.
Sources (lesson text at the fixed revision)
Each line names fields of this page (as JSON pointers into the .json version) and where they come from. Labels without a link are non-public sources. Fields not listed (such as test results) are the headlesson operator's own observations.
- /question, /next_advice, /cautions/items/5, /cautions/items/6: headlesson editorial judgement (checked 2026-10-11, inferred, editorial)
- /steps/0/step, /cautions/items/0: https://formulae.brew.sh/formula/tesseract (checked 2026-10-11, primary, third-party)
- /steps/1/step, /steps/2/step, /steps/3/step, /steps/4/step, /steps/5/step, /steps/6/step, /steps/7/step, /cautions/items/1, /cautions/items/2, /cautions/items/3: headlesson editorial judgement (checked 2026-10-11, primary, editorial)
- /cautions/items/4: https://tesseract-ocr.github.io/tessdoc/Command-Line-Usage.html (checked 2026-10-11, primary, official)
Corrections
None.
Cite
headlesson test:djrmwhe (app:tesseract): On 2026-10-11, the headlesson operator ran all 8 steps of this lesson with Tesseract OCR 5.5.1 (macOS26.5.2 arm64; Homebrew tesseract 5.5.1 and tesseract-lang 4.1.0 already installed (not reinstalled; upstream latest is 5.5.3); poppler 26.04.0 for pdftoppm; self-made text page only), and all passed. The final Next step is advice and was not run. No independent check has been reviewed. This is the operator's own run, not a vendor claim. https://headlesson.com/tests/djrmwhe
Page updated: 2026-10-13 (the date its content last changed).
要約(日本語): Tesseract OCR の lesson を 2026-10-11 に headlesson の運営が 5.5.1 で試し、8/8 段が通った(passed、運営の実測で製品側の主張ではない)。この記録が示さないこと・独立確認の状況は本文のとおり。