python3 截图 识别图片文字 读数字

一、截图,python处理图像信息使用pillow模块(python2使用的是PIL)

pip安装pillow:pip install pillow

from PIL import ImageGrab

 im=ImageGrab.grab(bbox=(左、上、右、下))    (左上右下是像素点,定位左上角和右下角的长方形(800,500,1000,600)  800,500 定位左上角,1000,600定位右下角)不带参数就是全屏。

 im.size    显示图片尺寸

 im.mode    显示图片模式 RGB

 im.show()   显示图片

 im.save(‘文件名称')   保存图片

 os.execvp('mspaint',('mspaint','test.png'))     使用windows画图工具打开test.png图片。

 

二、python识别图片文字,,使用pytesseract库从图像中提取文本,而识别引擎采用 tesseract-ocr。

Tesseract是一款由Google赞助的开源OCR。OCR,即Optical Character Recognition,光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。

pytesseract是python包装器,它为可执行文件提供了pythonic API。

1、安装必要的包:

pip install pillow

pip install pytesseract 

2、安装tesseract-ocr的识别引擎 

下载地址:https://github.com/UB-Mannheim/tesseract/wiki  

更多版本的tesseract下载地址:https://digi.bib.uni-mannheim.de/tesseract/

下载tesseract-ocr安装,在环境变量的path里面添加程序安装路径。

在cmd输入 tesseract -v ,出现版本信息,配置成功。

import pytesseract
from PIL import Image

if __name__ == '__main__':
    text = pytesseract.image_to_string(Image.open("test.png"),lang="eng")
    print(text)

3、解决pytesseract 找不到路径的问题。

在自己安装的pytesseract包中,找到pytesseract.py文件

打开pytesseract.py文件,修改  tesseract_cmd 的值:tesseract.exe 的安装路径 。为了避免其他的错误,使用双反斜杠,或者斜杠

 

三、利用python读数字。

1、使用音频编辑工具,audacity或者goldwave工具,录制一段,从零到九的数字。然后依次截取单个的0到9。

2、使用pydub库 pip install pydub  将截取的单个音频按照数字排列重新组合。

from pydub import AudioSegment

nowpath=os.getcwd()
nowpath=eval(repr(nowpath).replace('\\','/').replace('//','/'))
print(nowpath)

input_vio_0=nowpath+'/0.wav'
input_vio_1=nowpath+'/1.wav'
input_vio_2=nowpath+'/2.wav'
input_vio_3=nowpath+'/3.wav'
input_vio_4=nowpath+'/4.wav'
input_vio_5=nowpath+'/5.wav'
input_vio_6=nowpath+'/6.wav'
input_vio_7=nowpath+'/7.wav'
input_vio_8=nowpath+'/8.wav'
input_vio_9=nowpath+'/9.wav'
input_vio_10=nowpath+'/10.wav'  #空白音频为了停顿
output_path=nowpath+"/output_vio.wav"


nums=input('请输入数字:')
strs=str(nums)
print(strs[0],type(strs))

numarry=strs

output_vio=AudioSegment.from_wav(input_vio_10)+AudioSegment.from_wav(input_vio_10)
for num in numarry:
input_vio='input_vio_'+str(num)
print(input_vio)
output_vio+=AudioSegment.from_wav(eval('input_vio_'+str(num)))

output_vio.export(output_path,format='wav')

 

3、使用playsound或者pygame   模块播放音频文件

import pygame

 pygame.mixer.init()

 pygame.mixer.music.load(output_path)

pygame.mixer.music.play()

time.sleep(100)

pygame.mixer.music.stop()

 

posted @ 2021-09-23 11:04  桃花落,闲池阁  阅读(1105)  评论(0编辑  收藏  举报