python批量识别图片指定区域文字内容


Posted in Python onApril 30, 2019

Python批量识别图片指定区域文字内容,供大家参考,具体内容如下

简介

对于一张图片,需求识别指定区域的内容

1.截取原始图上的指定图片当做模板
2.根据模板相似度去再原始图片上识别准确坐标
3.根据坐标剪切出指定位置图片,也就是所需的内容区域
4.对指定位置图片进行ocr识别

环境

Ubuntu18.04
Python2.7

所需Python模块

1.aircv

用于识别模板再原始图的位置坐标

pip install aircv

2.Pillow

用于剪裁图片

pip install Pillow

3.Tesseract

文字识别
在此也可以用平台端的API进行更精准的识别
ubuntu下Tesseract环境安装

sudo apt-get install libpng12-dev 
sudo apt-get install libjpeg62-dev 
sudo apt-get install libtiff4-dev 
sudo apt-get install gcc 
sudo apt-get install g++ 
sudo apt-get install automake

1.tesseract-ocr安装

sudo apt-get install tesseract-ocr

2.pytesseract安装

pip install pytesseract

Python代码

识别对应位置

#!/usr/bin/python2.7 
# -*- coding: utf-8 -*- 
import aircv


def matchImg(imgsrc, imgobj, confidence=0.2):
 """
  图片对比识别imgobj在imgsrc上的相对位置(批量识别统一图片中需要的部分)
 :param imgsrc: 原始图片路径(str)
 :param imgobj: 待查找图片路径(模板)(str)
 :param confidence: 识别度(0<confidence<1.0)
 :return: None or dict({'confidence': 相似度(float), 'rectangle': 原始图片上的矩形坐标(tuple), 'result': 中心坐标(tuple)})
 """
 imsrc = aircv.imread(imgsrc)
 imobj = aircv.imread(imgobj)

 match_result = aircv.find_template(imsrc, imobj,
         confidence) # {'confidence': 0.5435812473297119, 'rectangle': ((394, 384), (394, 416), (450, 384), (450, 416)), 'result': (422.0, 400.0)}
 if match_result is not None:
  match_result['shape'] = (imsrc.shape[1], imsrc.shape[0]) # 0为高,1为宽

 return match_result

图片剪裁

#!/usr/bin/python2.7 
# -*- coding: utf-8 -*- 
from PIL import Image, ImageEnhance

def cutImg(imgsrc, out_img_name, coordinate):
 """
  根据坐标位置剪切图片
 :param imgsrc: 原始图片路径(str)
 :param out_img_name: 剪切输出图片路径(str)
 :param coordinate: 原始图片上的坐标(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 -*- 
import pytesseract
from PIL import Image

image = Image.open('bb.png')
code = pytesseract.image_to_string(image)
print(code)

对于三方API识别自行研究

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python在控制台输出进度条的方法
Jun 20 Python
python UNIX_TIMESTAMP时间处理方法分析
Apr 18 Python
基于使用paramiko执行远程linux主机命令(详解)
Oct 16 Python
在Python web中实现验证码图片代码分享
Nov 09 Python
Python实现k-means算法
Feb 23 Python
python实现数据库跨服务器迁移
Apr 12 Python
使用Django简单编写一个XSS平台的方法步骤
Mar 25 Python
python实现坦克大战游戏 附详细注释
Mar 27 Python
python关于矩阵重复赋值覆盖问题的解决方法
Jul 19 Python
Python动态导入模块和反射机制详解
Feb 18 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
Feb 25 Python
Python3 selenium 实现QQ群接龙自动化功能
Apr 17 Python
Python3.5装饰器典型案例分析
Apr 30 #Python
python如何制作缩略图
Apr 30 #Python
Python3.5装饰器原理及应用实例详解
Apr 30 #Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
Apr 30 #Python
python制作图片缩略图
Apr 30 #Python
python获取微信企业号打卡数据并生成windows计划任务
Apr 30 #Python
使用Python实现企业微信的自动打卡功能
Apr 30 #Python
You might like
超级实用的7个PHP代码片段分享
2012/01/05 PHP
从PHP的源码中深入了解stdClass类
2014/04/18 PHP
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
PHP发送AT指令实例代码
2016/05/26 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
2017/04/18 PHP
js取消单选按钮选中并判断对象是否为空
2013/11/14 Javascript
JS中的异常处理方法分享
2013/12/22 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
使用angularjs创建简单表格
2016/01/21 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
javascript编写简易计算器
2017/05/06 Javascript
详解Vue结合后台的列表增删改案例
2018/08/21 Javascript
vue实现菜单切换功能
2019/05/08 Javascript
JavaScript中的执行环境和作用域链
2020/09/04 Javascript
关于小程序优化的一些建议(小结)
2020/12/10 Javascript
JS实现纸牌发牌动画
2021/01/19 Javascript
python设置windows桌面壁纸的实现代码
2013/01/28 Python
python BeautifulSoup使用方法详解
2013/11/21 Python
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
学习python之编写简单简单连接数据库并执行查询操作
2016/02/27 Python
浅谈Python 列表字典赋值的陷阱
2019/01/20 Python
Python对象的属性访问过程详解
2020/03/05 Python
Python实现在Windows平台修改文件属性
2020/03/05 Python
python 带时区的日期格式化操作
2020/10/23 Python
python安装第三方库如xlrd的方法
2020/10/31 Python
加拿大著名时装品牌:SOIA & KYO
2016/08/23 全球购物
Laura官网:加拿大女性的顶级时尚目的地
2019/09/20 全球购物
学习考察心得体会
2014/09/04 职场文书
小学教育见习报告
2014/10/31 职场文书
工作汇报开头与结尾怎么写
2014/11/08 职场文书
2014年妇产科工作总结
2014/12/08 职场文书
三峡大坝导游词
2015/01/31 职场文书
2016继续教育研修日志
2015/11/13 职场文书
分析并发编程之LongAdder原理
2021/06/29 Java/Android
Java Lambda表达式常用的函数式接口
2022/04/07 Java/Android
Python matplotlib多个子图绘制整合
2022/04/13 Python