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 相关文章推荐
pygame学习笔记(6):完成一个简单的游戏
Apr 15 Python
简单易懂的python环境安装教程
Jul 13 Python
python中dir()与__dict__属性的区别浅析
Dec 10 Python
对python周期性定时器的示例详解
Feb 19 Python
pyqt5 使用label控件实时显示时间的实例
Jun 14 Python
Python如何实现的二分查找算法
May 27 Python
python 深度学习中的4种激活函数
Sep 18 Python
解决pytorch 数据类型报错的问题
Mar 03 Python
python基础学习之递归函数知识总结
May 26 Python
Python Django模型详解
Oct 05 Python
python神经网络 使用Keras构建RNN训练
May 04 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大批量数据操作时临时调整内存与执行时间的方法
2011/04/20 PHP
通过缓存数据库结果提高PHP性能的原理介绍
2012/09/05 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
js滚动条回到顶部的代码
2011/12/06 Javascript
通过jQuery源码学习javascript(一)
2012/12/27 Javascript
使用jquery解析XML的方法
2014/09/05 Javascript
jquery+css3实现网页背景花瓣随机飘落特效
2015/08/17 Javascript
js实现简单的联动菜单效果
2015/08/19 Javascript
jQuery实现带滑动条的菜单效果代码
2015/08/26 Javascript
jQuery模拟360浏览器切屏效果幻灯片(附demo源码下载)
2016/01/29 Javascript
JavaScript之cookie技术详解
2016/11/18 Javascript
vue.js实现表格合并示例代码
2016/11/30 Javascript
使用smartupload组件实现jsp+jdbc上传下载文件实例解析
2017/01/05 Javascript
React Native中Navigator的使用方法示例
2017/10/13 Javascript
jstree中的checkbox默认选中和隐藏示例代码
2019/12/29 Javascript
vue实现短信验证码输入框
2020/04/17 Javascript
JS实现简单打字测试
2020/06/24 Javascript
简单介绍Python中的JSON使用
2015/04/28 Python
Python编程实现蚁群算法详解
2017/11/13 Python
Python中Numpy包的安装与使用方法简明教程
2018/07/03 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
djang常用查询SQL语句的使用代码
2019/02/15 Python
python自动生成model文件过程详解
2019/11/02 Python
Python3 assert断言实现原理解析
2020/03/02 Python
python实现mask矩阵示例(根据列表所给元素)
2020/07/30 Python
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
SQL Server面试题
2016/10/17 面试题
办公室文书岗位职责
2013/12/16 职场文书
工作睡觉检讨书
2014/02/25 职场文书
商务助理求职信范文
2014/04/20 职场文书
酒店七夕情人节活动策划方案
2014/08/24 职场文书
安全生产隐患排查制度
2015/08/05 职场文书
Nginx+Tomcat实现负载均衡、动静分离的原理解析
2021/03/31 Servers
关于JavaScript轮播图的实现
2021/11/20 Javascript
【DOTA2】高能暴走TK秀!PSG LGD vs ASTER - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA