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中使用判断语句和循环的教程
Apr 25 Python
在windows系统中实现python3安装lxml
Mar 23 Python
python自动翻译实现方法
May 28 Python
Python向MySQL批量插数据的实例讲解
Mar 31 Python
Python实现的求解最大公约数算法示例
May 03 Python
python模块导入的细节详解
Dec 10 Python
python退出命令是什么?详解python退出方法
Dec 10 Python
Django对数据库进行添加与更新的例子
Jul 12 Python
pytorch的梯度计算以及backward方法详解
Jan 10 Python
Python pickle模块常用方法代码实例
Oct 10 Python
windows系统Tensorflow2.x简单安装记录(图文)
Jan 18 Python
python实现简单的学生管理系统
Feb 22 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
php 数学运算验证码实现代码
2009/10/11 PHP
深入解析WordPress中加载模板的get_template_part函数
2016/01/11 PHP
thinkphp实现图片上传功能
2016/01/13 PHP
YII框架页面缓存操作示例
2019/04/29 PHP
发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载
2007/07/21 Javascript
jQuery对象和DOM对象相互转化
2009/04/24 Javascript
怎样在JavaScript里写一个swing把数据插入数据库
2012/12/10 Javascript
extJS中常用的4种Ajax异步提交方式
2014/03/07 Javascript
jQuery获取样式中颜色值的方法
2015/01/29 Javascript
JS控制按钮10秒钟后可用的方法
2015/12/22 Javascript
详解原生JavaScript实现jQuery中AJAX处理的方法
2016/05/10 Javascript
用JS实现轮播图效果(二)
2016/06/26 Javascript
基于js 本地存储(详解)
2017/08/16 Javascript
你应该了解的JavaScript Array.map()五种用途小结
2018/11/14 Javascript
详解Vue中使用插槽(slot)、聚类插槽
2019/04/12 Javascript
如何利用vue+vue-router+elementUI实现简易通讯录
2019/05/13 Javascript
JavaScript简单编程实例学习
2020/02/14 Javascript
Vue的自定义组件不能使用click方法的解决
2020/07/28 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
python简单线程和协程学习心得(分享)
2017/06/14 Python
使用django-guardian实现django-admin的行级权限控制的方法
2018/10/30 Python
Matplotlib中文乱码的3种解决方案
2018/11/15 Python
对python判断ip是否可达的实例详解
2019/01/31 Python
Python找出列表中出现次数最多的元素三种方式
2020/02/24 Python
Python loguru日志库之高效输出控制台日志和日志记录
2020/03/07 Python
Python lxml库的简单介绍及基本使用讲解
2020/12/22 Python
Magee 1866官网:Donegal粗花呢外套和大衣专家
2019/11/01 全球购物
荷兰天然和有机产品网上商城:BigGreenSmile.nl
2020/07/26 全球购物
XML文档面试题
2015/08/05 面试题
介绍一下grep命令的使用
2015/06/12 面试题
销售职业生涯规划范文
2014/03/14 职场文书
保研推荐信
2014/05/09 职场文书
建筑学专业自荐书
2014/07/09 职场文书
2015年八一建军节慰问信
2015/03/23 职场文书
企业战略合作意向书
2015/05/08 职场文书
Java实现注册登录跳转
2022/06/16 Java/Android