Python识别身份证号码

阅读更多

用到了两个重要的库,以下以MacOS系统为例

 

1. ImageMagick,用于对图片进行预处理

安装

brew install ImageMagick

 

再下载针对文本图片清理的脚本   textcleaner

增加可执行权限

chmod +x textcleaner

 

测试一下效果,原始图片


Python识别身份证号码_第1张图片
 

执行命令

./textcleaner -g -e normalize -f 50 -o 12 -s 2 id-test3.png user_id_cleaned.png

得到新图片

Python识别身份证号码_第2张图片
 效果非常明显。

 

2. pytesseract,用于识别文字

pytesseract依赖于Google tesseract-ocr

brew install tesseract

 

再安装 pytesseract

pip3 install pytesseract

 

识别代码

print(pytesseract.image_to_string(Image.open('user_id_cleaned.png')))

 

3. 完整代码

 

# -*- coding: utf-8 -*-
from PIL import Image
import pytesseract
import subprocess
import shlex

source_file = 'id-test3.png'
cmd = f'./textcleaner -g -e normalize -f 50 -o 12 -s 2 {source_file} user_id_cleaned.png'
print('cleaning image for text')
subprocess.run(shlex.split(cmd))

print('recognizing text from image')
print(pytesseract.image_to_string(Image.open('user_id_cleaned.png')))

 

 

 

 

 

 

  • Python识别身份证号码_第3张图片
  • 大小: 275.4 KB
  • Python识别身份证号码_第4张图片
  • 大小: 3 KB
  • 查看图片附件

你可能感兴趣的:(OCR)