Skip to content
Snippets Groups Projects
Commit a1ca342a authored by Recolic Keghart's avatar Recolic Keghart
Browse files

Add hust_code OCR

parent 0d228b85
No related branches found
No related tags found
No related merge requests found
from PIL import Image from PIL import Image
import sys import sys, subprocess
i, o = sys.argv[1:] tmp_fname = '/tmp/.recolic-hust.ocr-tmp.png'
im = Image.open(i) def prepare_ocr(input_fname, output_fname):
# In pass.hust.edu.cn verification code, the second frame is COMPLETE! im = Image.open(input_fname)
# let's get the second frame. # In pass.hust.edu.cn verification code, the second frame is COMPLETE!
im.seek(im.tell()+1) # let's get the second frame.
im.save(o) im.seek(im.tell()+1)
# To white-black
im = im.convert('L')
im = im.point(lambda x: 0 if x<254 else 255, '1')
# Try to crop. The Silly ocr doesn't like a single_line good image...
# Should use `tesseract output.png stdout --psm 8 -c tessedit_char_whitelist=0123456789` for cropped image.
#w, h = im.size
#if w == 90 and h == 58:
# im = im.crop((0, 18, w, 39))
#else:
# print('WARNING: Expected image w=90, h=58, Got image w={}, h={}.'.format(w, h))
# Save for OCR
im.save(output_fname)
im = Image.open(o) def do_ocr(input_fname):
# To white-black output = subprocess.check_output(['tesseract', input_fname, 'stdout']).decode('utf-8')
im = im.convert('L') for line in output.split('\n'):
im = im.point(lambda x: 0 if x<254 else 255, '1') line = line.strip()
# Try to crop if len(line) == 4 and line.isdigit():
w, h = im.size return line
if w == 90 and h == 58: return None
im = im.crop((0, 18, w, 39))
else:
print('WARNING: Expected image w=90, h=58, Got image w={}, h={}.'.format(w, h))
# Save for OCR
im.save(o)
#i = sys.argv[1]
#prepare_ocr(i, tmp_fname)
#print(do_ocr(tmp_fname))
def recognize_hust_code()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment