Reading text from image
<p>Any suggestions on converting these images to text?  I'm using pytesseract and it's working wonderfully in most cases except this.  Ideally I'd read these numbers exactly.  Worst case I can just try to use PIL to determine if the number to the left of the '/' is a zero.  Start from the left and find the first white pixel, then </p>

<p><a href="http://i.stack.imgur.com/kIrvO.png" rel="nofollow"><img src="http://i.stack.imgur.com/kIrvO.png" alt="enter image description here"></a>
<a href="http://i.stack.imgur.com/iCqkW.png" rel="nofollow"><img src="http://i.stack.imgur.com/iCqkW.png" alt="enter image description here"></a></p>

<pre><code>from PIL import Image
from pytesseract import image_to_string

myText = image_to_string(Image.open("tmp/test.jpg"),config='-psm 10')
myText = image_to_string(Image.open("tmp/test.jpg"))
</code></pre>

<p>The slash in the middle causes issues here.  I've also tried using PIL's '.paste' to add lots of extra black around the image.  There might be a few other PIL tricks I could try, but i'd rather not go that route unless I have to.  </p>

<p>I tried using config='-psm 10' but my 8's were coming through as ":" sometimes, and random characters other times.  And my 0's were coming through as nothing.  </p>

<p>Reference to: <a href="http://stackoverflow.com/questions/31643216/pytesseract-dont-work-with-one-digit-image">pytesseract don&#39;t work with one digit image</a> for the -psm 10</p>

<p><strong>_____________EDIT_______________</strong>
Additional samples:</p>

<p><a href="http://i.stack.imgur.com/RCKPc.jpg" rel="nofollow"><img src="http://i.stack.imgur.com/RCKPc.jpg" alt="enter image description here"></a>
1BJ2I]</p>

<p><a href="http://i.stack.imgur.com/wlFJJ.jpg" rel="nofollow"><img src="http://i.stack.imgur.com/wlFJJ.jpg" alt="enter image description here"></a>
DIS</p>

<p><a href="http://i.stack.imgur.com/4eGlZ.jpg" rel="nofollow"><img src="http://i.stack.imgur.com/4eGlZ.jpg" alt="enter image description here"></a>
10.I'10</p>

<p><a href="http://i.stack.imgur.com/0JqEW.jpg" rel="nofollow"><img src="http://i.stack.imgur.com/0JqEW.jpg" alt="enter image description here"></a>
20.I20</p>

<p>So I'm doing some voodoo conversions that seem to be working for now.  But looks very error prone:</p>

<pre><code>def ConvertPPTextToReadableNumbers(text):
    text = RemoveNonASCIICharacters(text)
    text = text.replace("I]", "0")
    text = text.replace("|]", "0")
    text = text.replace("l]", "0")
    text = text.replace("B", "8")
    text = text.replace("D", "0")
    text = text.replace("S", "5")
    text = text.replace(".I'", "/")
    text = text.replace(".I", "/")
    text = text.replace("I'", "/")
    text = text.replace("J", "/")
    return text
</code></pre>

<p>Ultimately generates:</p>

<pre><code>ConvertPPTextToReadableNumbers return text =  18/20
ConvertPPTextToReadableNumbers return text =  0/5
ConvertPPTextToReadableNumbers return text =  10/10
ConvertPPTextToReadableNumbers return text =  20/20
</code></pre>

<p>Generally speaking, most OCR tools (like Tesseract) are tuned for working with high-resolution scans of printed text. They do not perform well on low-resolution or pixellated images.</p>

<p>Two possible approaches here are:</p>

<ol>
<li><p>If the font, background, and layout of your images are completely predictable, you don't need Tesseract at all; it's just complicating matters. Build a library of images representing each character you need to recognize, and <a href="http://effbot.org/zone/pil-comparing-images.htm" rel="nofollow">check whether parts of the image are equal to the reference image</a>.</p></li>
<li><p>If that isn't an option, or if it seems too hard, you could upscale the pixellated image using one of <a href="https://en.wikipedia.org/wiki/Hqx" rel="nofollow">the hq*x algorithms</a>. The added detail may be sufficient to get Tesseract to reliably recognize the characters.</p></li>
</ol>

python image-processing pytesser