当前位置:   article > 正文

Python识别图片指定区域文字内容_python 识别固定范围内图片的文字进行不同的鼠标操作

python 识别固定范围内图片的文字进行不同的鼠标操作

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

简介

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

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

环境
Ubuntu18.04
Python2.7

所需Python模块

  1. aircv

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

pip install aircv
  • 1
  1. Pillow
    用于剪裁图片
pip install Pillow
  • 1
  1. 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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

1.tesseract-ocr安装

sudo apt-get install tesseract-ocr

  • 1
  • 2

2.pytesseract安装

pip install pytesseract
  • 1

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

图片剪裁

#!/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)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

图片识别

#!/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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

对于三方API识别自行研究

————————————————
版权声明:本文为CSDN博主「Likeob」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41616397/article/details/87980510

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/295975
推荐阅读
相关标签
  

闽ICP备14008679号