python图片识别

这段时间,在同事的怂恿下,接触了点利用python摄像头动态识别的知识。上周三,二丫发的数学晨读卡片丢了,找小朋友的家长照了照片转给了我,如果对着照片一个字一个字的打太慢了,于是琢磨着写了个东东,识别率还行。
先是下载tesseract-ocr, https://digi.bib.uni-mannheim.de/tesseract/ ; 根据自己的系统选择,我安装了202003028版本,下一步安装即可,然后就要用pip安装相关模块了,pip install pytesseract和pip install PILLOW ,如果要识别汉字,还要下载支持汉字的库chi_sim.traineddata(和tesseract-ocr版本要吻合),这里有个坑,都是国外的网站chi_sim.traineddata有50M,我下了只有几k(网速慢没下完全),导致程序怎么都运行不了。

在这里插入代码片
```# -*- coding: gbk -*-
# -*- coding: utf_8 -*-
try:
    import pytesseract
    from PIL import Image
except ImportError:
    print( '模块导入错误,请使用pip安装,pytesseract依赖以下库:')
    print ('http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil')
    print ('http://code.google.com/p/tesseract-ocr/')
    raise SystemExit
pytesseract.pytesseract.tesseract_cmd = 'C:\\Program Files\\Tesseract-OCR\\tesseract.exe' #定义tesseract目录
tessdata_dir_config = '--tessdata-dir "C:\\Program Files\\Tesseract-OCR\\tessdata\"' #定义tessdata目录
img = Image.open('1.jpg','r')          
img.load()
vcode = pytesseract.image_to_string(img,config=tessdata_dir_config,lang='chi_sim')#如果图片没汉字,可删除lang="chi_sim"
with open("output.txt", "w") as f: #将识别出来的文字存到本地
    print(vcode)
    f.write(str(vcode))

在这里插入图片描述

PS:百度的图片识别非常棒,有API接口可以程序调用,很方便。
利用周六日又把百度的API接口试了试,很nice.(要pip install baidu-aip,还要在百度中申请账号,APP_ID等信息就是百度中提供的)

import time
import tkinter.messagebox 
from aip import AipOcr
import os,os.path
import pywintypes
import tkinter as tk

from tkinter import filedialog, dialog,ttk
# 连接api
APP_ID = "xxxx"
API_KEY = "xxxxxxxx"
SECRET_KEY = "xxxxxxx"
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

# 返回值设置
options = {}
options["language_type"] = "CHN_ENG"
options["detect_direction"] = "False"
options["detect_language"] = "False"
options["probability"] = "False"

def opendir():
    dir=os.path.dirname(fpath.get())
    os.system('start '+ dir)

def getfile():
  file_path=filedialog.askopenfilename()
  fpath.set(file_path)
  
  tt=os.path.split(file_path)[1]
  print(tt)
  i = open(tt,'rb')
  img = i.read()
  message = client.basicGeneral(img)
  if os.path.exists("lucky.doc"):
      os.remove("lucky.doc")   
  with open("lucky.doc","a") as f:        #将识别出来的文字追加存到本地
       for i in message.get('words_result'):
           #print(i.get('words'))
           f.write(str(i.get('words'))+"\n")
  print( "已转换完成")


这次的效果是非常好了,并且百度的图片转换每天 5000次免费,够用了。
在这里插入图片描述
*
搞完后没几天,有个自称百度的工作人员打来电话,说发现我近来有引用百度应用的情况,希望商用的话可以咨询合作。好吧,我只是测试测试,等哥真搞了什么项目,一定会帮衬你百度的!!

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值