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 相关文章推荐
对numpy 数组和矩阵的乘法的进一步理解
Apr 04 Python
python获取点击的坐标画图形的方法
Jul 09 Python
python 使用pdfminer3k 读取PDF文档的例子
Aug 27 Python
Python实现直播推流效果
Nov 26 Python
pytorch使用tensorboardX进行loss可视化实例
Feb 24 Python
python读取多层嵌套文件夹中的文件实例
Feb 27 Python
关于Django Models CharField 参数说明
Mar 31 Python
如何将json数据转换为python数据
Sep 04 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
Nov 17 Python
python3 使用ssh隧道连接mysql的操作
Dec 05 Python
利用Python如何画一颗心、小人发射爱心
Feb 21 Python
Python中的min及返回最小值索引的操作
May 10 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
mysq GBKl乱码
2006/11/28 PHP
php和js交互一例-PHP教程,PHP应用
2007/01/03 PHP
在php中判断一个请求是ajax请求还是普通请求的方法
2011/06/28 PHP
PHP伪静态Rewrite设置之APACHE篇
2014/07/30 PHP
XHTML-Strict 内允许出现的标签
2006/12/11 Javascript
jQuery DOM操作小结与实例
2010/01/07 Javascript
jquery.validate使用攻略 第二部
2010/07/01 Javascript
jQuery.extend 函数详解
2012/02/03 Javascript
jquery 获取表单元素里面的值示例代码
2013/07/28 Javascript
jquery如何通过name名称获取当前name的value值
2013/12/20 Javascript
JS实现将人民币金额转换为大写的示例代码
2014/02/13 Javascript
一个js过滤空格的小函数
2014/10/10 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
js实现TAB切换对应不同颜色的代码
2015/08/31 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
2016/07/04 Javascript
基于Nodejs的Tcp封包和解包的理解
2018/09/19 NodeJs
Vue数据绑定实例写法
2019/08/06 Javascript
js单线程的本质 Event Loop解析
2019/10/29 Javascript
Jquery如何使用animation动画效果改变背景色的代码
2020/07/20 jQuery
JQuery+drag.js上传图片并且实现图片拖曳
2020/11/18 jQuery
一个简单的python程序实例(通讯录)
2013/11/29 Python
Python使用random和tertools模块解一些经典概率问题
2015/01/28 Python
python通过邮件服务器端口发送邮件的方法
2015/04/30 Python
TensorFlow变量管理详解
2018/03/10 Python
Python学习_几种存取xls/xlsx文件的方法总结
2018/05/03 Python
Python实现的远程登录windows系统功能示例
2018/06/21 Python
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
Python的bit_length函数来二进制的位数方法
2019/08/27 Python
浅谈Python_Openpyxl使用(最全总结)
2019/09/05 Python
python字典的值可以修改吗
2020/06/29 Python
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
会计系中文个人求职信
2013/12/24 职场文书
经贸韩语专业大学生职业规划
2014/02/14 职场文书
英文商务邀请函范文
2015/01/31 职场文书
公司年夜饭通知
2015/04/25 职场文书