{"id":1807,"date":"2026-04-07T10:59:30","date_gmt":"2026-04-07T10:59:30","guid":{"rendered":"https:\/\/wiro.ai\/blog\/?p=1807"},"modified":"2026-03-19T11:01:46","modified_gmt":"2026-03-19T11:01:46","slug":"easy-ocr-5-layout-tests","status":"publish","type":"post","link":"https:\/\/wiro.ai\/blog\/easy-ocr-5-layout-tests\/","title":{"rendered":"Easy OCR: 5 Layout Tests"},"content":{"rendered":"<p>Easy OCR extracts text from images. The hard part is the input. This post runs five layout tests and shows the raw outputs.<\/p>\n<h2>Model<\/h2>\n<p><a href=\"https:\/\/wiro.ai\/models\/wiro\/easy-ocr\">Easy OCR on Wiro<\/a><\/p>\n<h2>5 layout tests with real outputs<\/h2>\n<h3>Test 1: Receipt (numbers and totals)<\/h3>\n<figure><img decoding=\"async\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/03\/easyocr-input-1.jpg\" alt=\"Receipt with item lines and total\" \/><figcaption>Prompt: High resolution scanned paper receipt, black text on white thermal paper, perfectly readable. Receipt text:<br \/>\nCOFFEE CORNER<br \/>\nDate: 2026-03-19<br \/>\nLatte 4.50<br \/>\nCroissant 3.20<br \/>\nTax 0.62<br \/>\nTOTAL 8.32<br \/>\nThank you<\/figcaption><\/figure>\n<p><strong>Easy OCR output<\/strong><\/p>\n<pre><code>COFFEE\nCORNER\nDate:\n2026-03-19\nLatte\n4\n50\nCroissant\n3\n20\nTax\n0\n62\nTOTAL\n8\n32\nThank\nyou<\/code><\/pre>\n<p>Digits often split into separate tokens. That shows up in totals and prices.<\/p>\n<h3>Test 2: Table (rows and commas)<\/h3>\n<figure><img decoding=\"async\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/03\/easyocr-input-2.jpg\" alt=\"Table with quarter revenue users\" \/><figcaption>Prompt: Clean spreadsheet style table on white background, perfectly readable black text, sharp lines. Table:<br \/>\nQuarter | Revenue | Users<br \/>\nQ1 2026 | 1,240,000 | 182,400<br \/>\nQ2 2026 | 1,410,000 | 201,900<br \/>\nQ3 2026 | 1,530,000 | 219,050<\/figcaption><\/figure>\n<p><strong>Easy OCR output<\/strong><\/p>\n<pre><code>Quarter\nRevenue\nUsers\nQ1 2026\n1,240,000\n182,400\nQ2 2026\n1,410,000\n201,900\nQ3 2026\n1,530,000\n219,050<\/code><\/pre>\n<p>Tables work well when lines are crisp and spacing is consistent.<\/p>\n<h3>Test 3: Shipping label (mixed casing)<\/h3>\n<figure><img decoding=\"async\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/03\/easyocr-input-3.jpg\" alt=\"Shipping label with address and tracking\" \/><figcaption>Prompt: Shipping label on white sticker, high contrast, perfectly readable. Text:<br \/>\nTO: Alex Morgan<br \/>\n12 Pine Street<br \/>\nAustin, TX 78701<br \/>\nTRACKING: ZX-104-88-219<br \/>\nFRAGILE<\/figcaption><\/figure>\n<p><strong>Easy OCR output<\/strong><\/p>\n<pre><code>TO:\nAlex Morgan\n12 Pine Street\nAustin, TX 78701\nTRACKING: ZX-104-88-219\nFRAGILE<\/code><\/pre>\n<h3>Test 4: Handwriting (hard mode)<\/h3>\n<figure><img decoding=\"async\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/03\/easyocr-input-4.jpg\" alt=\"Handwritten note on lined paper\" \/><figcaption>Prompt: Handwritten note on lined paper, neat cursive handwriting, high contrast, perfectly readable. Text:<br \/>\nCall Sam at 17:30.<br \/>\nBuy milk, eggs, bread.<br \/>\nMeeting moved to Friday.<\/figcaption><\/figure>\n<p><strong>Easy OCR output<\/strong><\/p>\n<pre><code>Cale_Xam at 1F:30.\nmile , %9s , Giead.\nmoved to\npuy\nMeeting\nFiiday<\/code><\/pre>\n<p>Handwriting stays the hardest case. Expect errors unless handwriting is very clean.<\/p>\n<h3>Test 5: Code screenshot (UI noise)<\/h3>\n<figure><img decoding=\"async\" src=\"https:\/\/wiro.ai\/blog\/wp-content\/uploads\/2026\/03\/easyocr-input-5.jpg\" alt=\"Code editor screenshot with JavaScript\" \/><figcaption>Prompt: Screenshot of a code editor on dark theme, monospace font, perfectly readable. Code:<br \/>\nfunction add(a, b) {<br \/>\n  return a + b;<br \/>\n}<br \/>\nconsole.log(add(2, 3));<\/figcaption><\/figure>\n<p><strong>Easy OCR output<\/strong><\/p>\n<pre><code>File\nEdit\nSelection\nView\nGo\nRun\nTerminal\nHelp\nindexjs\nVisual Studio Code\nEXPLORER\nJS indexjs\n= nedennve\nOPEN EDITORS\nJS\nindexjs\nta\nTotor\nJS indexjs\n1\nfunction\nadd(a,\nb) {\ntele klela\nEEKWR\ngit\n2\nreturn\na + b;\nnode_modules\nJS indexjs\n3\n{} package-lockjson\n{} package json\n4\nREADMEmd\n5\nconsole.\nI(add ( 2 ,\n3)V\nOUTLINE\nJIVASCRIPT\n0 ^ 0\nLn 5, Col 23\nSpaces: 2\nUTF-8\nJavaScript\n8j\nlogl<\/code><\/pre>\n<p>UI chrome adds noise. Cropping to the code region helps a lot.<\/p>\n<h2>Quick tips<\/h2>\n<ul>\n<li>Crop tight. Remove UI bars, side panels, and borders.<\/li>\n<li>Boost contrast. Black text on white background still wins.<\/li>\n<li>Prefer printed text over handwriting when accuracy matters.<\/li>\n<li>For receipts, post-process numbers. OCR can split digits across lines.<\/li>\n<\/ul>\n<h2>Try it<\/h2>\n<p>Run Easy OCR on Wiro: <a href=\"https:\/\/wiro.ai\/models\/wiro\/easy-ocr\">https:\/\/wiro.ai\/models\/wiro\/easy-ocr<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Easy OCR extracts text from images. The hard part is the input. This post runs five layout tests and shows the raw&hellip;<\/p>\n","protected":false},"author":4,"featured_media":1806,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[52],"tags":[151,106,152],"class_list":["post-1807","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-model-reviews","tag-easyocr","tag-ocr","tag-text-recognition"],"_links":{"self":[{"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/posts\/1807","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/comments?post=1807"}],"version-history":[{"count":1,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/posts\/1807\/revisions"}],"predecessor-version":[{"id":1808,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/posts\/1807\/revisions\/1808"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/media\/1806"}],"wp:attachment":[{"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/media?parent=1807"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/categories?post=1807"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/tags?post=1807"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}