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()