python批量识别图片指定区域文字内容
Python批量识别图片指定区域文字内容,供大家参考,具体内容如下
简介
对于一张图片,需求识别指定区域的内容
1.截取原始图上的指定图片当做模板
2.根据模板相似度去再原始图片上识别准确坐标
3.根据坐标剪切出指定位置图片,也就是所需的内容区域
4.对指定位置图片进行ocr识别
环境
Ubuntu18.04
Python2.7
所需Python模块
1.aircv
用于识别模板再原始图的位置坐标
pipinstallaircv
2.Pillow
用于剪裁图片
pipinstallPillow
3.Tesseract
文字识别
在此也可以用平台端的API进行更精准的识别
ubuntu下Tesseract环境安装
sudoapt-getinstalllibpng12-dev sudoapt-getinstalllibjpeg62-dev sudoapt-getinstalllibtiff4-dev sudoapt-getinstallgcc sudoapt-getinstallg++ sudoapt-getinstallautomake
1.tesseract-ocr安装
sudoapt-getinstalltesseract-ocr
2.pytesseract安装
pipinstallpytesseract
Python代码
识别对应位置
#!/usr/bin/python2.7 #-*-coding:utf-8-*- importaircv defmatchImg(imgsrc,imgobj,confidence=0.2): """ 图片对比识别imgobj在imgsrc上的相对位置(批量识别统一图片中需要的部分) :paramimgsrc:原始图片路径(str) :paramimgobj:待查找图片路径(模板)(str) :paramconfidence:识别度(0图片剪裁
#!/usr/bin/python2.7 #-*-coding:utf-8-*- fromPILimportImage,ImageEnhance defcutImg(imgsrc,out_img_name,coordinate): """ 根据坐标位置剪切图片 :paramimgsrc:原始图片路径(str) :paramout_img_name:剪切输出图片路径(str) :paramcoordinate:原始图片上的坐标(tuple)egg:(x,y,w,h)--->x,y为矩形左上角坐标,w,h为右下角坐标 :return: """ image=Image.open(imgsrc) region=image.crop(coordinate) region=ImageEnhance.Contrast(region).enhance(1.5) region.save(out_img_name)图片识别
#!/usr/bin/python2.7 #-*-coding:utf-8-*- importpytesseract fromPILimportImage image=Image.open('bb.png') code=pytesseract.image_to_string(image) print(code)对于三方API识别自行研究
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。