python常用的OCR文字识别与图片定位方式

本文介绍了如何使用Python结合PyCharm进行OCR操作,包括调用百度OCR服务,实现图片匹配与定位,以及使用PaddleOCR。详细讲述了安装依赖、代码实现和运行结果,特别提醒了在安装numpy时需要注意的版本问题。
摘要由CSDN通过智能技术生成

前言

统一版本

如果想一次性调用成功,最好与本教程所用的版本保持一致

python版本:3.10
PyCharm版本:PyCharm 2022.1.2

更换pip源

平常使用python自带的pip进行安装是比较慢的,该处推荐几个自己用着比较快的源,可以进行替换

百度源: https://mirror.baidu.com/pypi/simple
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/

如果使用的是命令窗口的形式,只需要在安装的包名后面添加个 -i https://mirror.baidu.com/pypi/simple即可,如下所示

pip install paddlepaddle==2.4.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

如果使用的是PyCharm

1.在左下角找到Python Packages
2点击设置按钮
3.起个名字
4.输入源
5.点击确定
6.此时PyCharm中的源添加完毕,在使用Python Interpreter的时候,即可选择对应的源进行下载,提高下载速度

按照如图所示即可
在这里插入图片描述

1. Python调用百度文字识别ocr的实现方式

1.1 使用PyCharm安装依赖

首先,使用PyCharm创建好一个项目,设置如图所示
在这里插入图片描述

使用PyCharm创建完成一个项目后,开始安装必要的插件,本案例使用的是Python Interpreter。
路径为File–>Settings–>Project:你的项目名称–>Python Interpreter
如下图所示,备注:示例中是已经安装后的,如果是首次创建,则只有三个包

在这里插入图片描述
开始安装运行所需要的依赖

baidu-aip

版本为4.16.8
点击图中红框中的 + 号
在这里插入图片描述
在搜索框中,输入要安装的包名,选择合适的源(此处请参考前言中的更换pip源,如果未添加其他的源,则只显示一个baidu-aip)进行下载,如图所示,可以选择版本,确定好版本后,点击下面的Install Package进行安装即可。接下来的包安装与该方式相同,如果有其他包安装的话,不再进行截图,下载方式参考该处即可
在这里插入图片描述

chardet

具体安装详情请参考baidu-api,版本为5.1.0

1.2 代码实现

准备工作

需求自己先在百度工作台上找到对应的APP_ID 、API_KEY 、SECRET_KEY
具体怎么找请自行百度

经过前面的步骤,已经安装了启动代码所需要的依赖,此时,把该代码复制到自己的项目中,稍作修改即可

import os.path
from aip import AipOcr

if __name__ == '__main__':

    """ 你的 APPID AK SK """
    APP_ID = '你的APP_ID'
    API_KEY = '你的API_KEY '
    SECRET_KEY = '你的SECRET_KEY '
    client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
   
    """ 相对路径,在项目跟路径下,创建个img文件夹,然后文件夹中有个zhuogui.png图片,用来进行测试是否可用 """
    img_dir_path = r'img'
    imagepath = os.path.join(img_dir_path, 'zhuogui.png')
    with open(imagepath, 'rb') as fp:
        """识别到信息以字典形式返回"""
        dic = client.general(fp.read())
        print(dic)
        """遍历字典与想要的文案对比如果对比到就返回坐标"""
    exit(0)

1.3 运行结果展示

效果如下图所示
在这里插入图片描述

2. Python实现图片匹配与定位

该实现方式适用于以下场景:
如给定一张小图片,判断该图片是否在另一张图片中;或者在一张大图片中,截出来一小部分图片,然后定位该图片在大图中的位置

2.1 安装依赖

在运行项目前,需要先安装如下依赖,具体安装方式,请参考标题1中的baidu-aip的方式进行安装

aircv

版本为1.4.6

opencv-python

版本为4.6.0.66

2.2 python代码实现

import aircv as ac

# Press the green button in the gutter to run the script.
if __name__ == '__main__':

    # 源文件,要在该图片中进行查找,被注释的方式为java传参
   # imsrc = ac.imread(sys.argv[1])
    imsrc = ac.imread('D:\code\yujian\yujian-admin\src\main\\resources\static\image\coordinate.png')
    # 查找的图标,需要查找的图标,被注释的方式为java传参
   # imobj = ac.imread(sys.argv[2])
    imobj = ac.imread('D:\code\yujian\yujian-admin\src\main\\resources\static\image\c0002.png')

    # {'confidence': 0.5435812473297119, 'rectangle': ((394, 384), (394, 416), (450, 384), (450, 416)), 'result': (422.0, 400.0)
    # confidence:匹配相似率
    # rectangle:匹配图片在原始图像上四边形的坐标
    # result:匹配图片在原始图片上的中心坐标点,也就是我们要找的点击点
    # similarity = ac.imread(sys.argv[3])
    # match_result = ac.find_template(imsrc, imobj, 0.70)
    match_result = ac.find_template(imsrc, imobj, 0.70)
    if match_result is not None:
        match_result['shape'] = (imsrc.shape[1], imsrc.shape[0])  # 0为高,1为宽

    print(match_result);

2.3 运行结果展示

如下图所示,返回小图片在大图片中的坐标位置
在这里插入图片描述

3.python调用PaddleOCR

详细信息,可去 飞桨官网进行查看,本教程只介绍简单的使用与安装

3.1 安装依赖

在运行项目前,需要先安装如下依赖,具体安装方式,请参考标题1中的baidu-aip的方式进行安装

paddlepaddle

版本为2.4.1

paddleocr

版本为2.6.1.2

备注:
1.安装包较大,时间较长,PyCharm导入时间也长,耐心等待即可
2. 安装完成后,可以先看下numpy包的版本,如果是1.24.0,则更换为1.23.2即可,否则运行时会报错

3.2 python中的代码

import os
from paddleocr import PaddleOCR
import cv2
from math import *
import numpy as np


def img_match(img_address):
	ocr = PaddleOCR(use_angle_cls=False, lang="ch", use_gpu=False)
	# 该处注释掉了其他的字库,如果需要下面的字库,可在github上自行下载,该教材以上面的简单字库为例,复制即用
    #ocr = PaddleOCR(use_angle_cls=True, lang="ch",
    #               rec_model_dir='../models/ch_PP-OCRv3_rec_slim_infer/',
    #               cls_model_dir='../models/ch_ppocr_mobile_v2.0_cls_slim_infer/',
    #               det_model_dir='../models/ch_PP-OCRv3_det_slim_infer/')
    src_img = cv2.imread(img_address)
    h, w = src_img.shape[:2]
    big = int(sqrt(h * h + w * w))
    big_img = np.empty((big, big, src_img.ndim), np.uint8)
    yoff = round((big - h) / 2)
    xoff = round((big - w) / 2)
    big_img[yoff:yoff + h, xoff:xoff + w] = src_img
    # 文字识别
    matRotate = cv2.getRotationMatrix2D((big * 0.5, big * 0.5), 0, 1)
    dst = cv2.warpAffine(big_img, matRotate, (big, big))
    result = ocr.ocr(dst, cls=True)
    results = ""
    for text in result:
        for value in text:
            results = results + str(value[1])
    print(results)


if __name__ == '__main__':
	
    img_dir_path = r'img'
    imagepath = os.path.join(img_dir_path, 'zhuogui.png')
    img_match(imagepath)
    # 此处可以更换成字符串的绝对路径,如果更换为绝对路径的话,上面三行需要删除
    # img_match("G:\\360MoveData\\Users\\86177\\Desktop\\zhuogui.png")

3.3 执行结果

正确执行结果如下(如果执行的时候报错,请看3.4 运行报错(所踩的坑)
在这里插入图片描述

3.4 运行报错(所踩的坑)

如果遇到该报错,请查看安装的依赖的numpy,更换成1.23.2即可
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

月独行
关注 关注
  • 3
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
python OCR文字识别
阿king的博客
05-23 881
import easyocr def hjc_shibie01(): reader = easyocr.Reader(['ch_sim','en']) imagepath = 'D:\\PycharmProjects\\hjclx\wenzishibie\\dd01.png'#图片存放的路径 result = reader.readtext(imagepath) for i in result: word = i[1] print(wor.
python文字识别
10-27
基于tkinter与pytesseract实现的图形用户界面进行文字识别,本例适用于表格类型图片,若想使用其他类型,请对编码进行修改
Python中用于从图像中提取文本的8大OCR
深度学习与计算机视觉
06-21 5671
介绍你是否曾想过你的电脑如何能够从图像中读取文字?这都要归功于一种叫做光学字符识别(Optical Character Recognition, OCR)的技术。在Python中,有一些非常酷的库可以帮助你的电脑理解图片中的文字。从谷歌强大的Tesseract到EasyOCR时髦的深度学习,这些库能够做一些非常了不起的事情。让我们来看看Python中的OCR库,了解这些库是如何将图像转换成可读文字...
Python OCR库:自动化测试验证码识别神器!
野路子云遇见不同的自己
08-29 813
在接口自动化工作中,经常需要处理文字识别的任务,而OCR(Optical Character Recognition,光学字符识别)库能够帮助我们将图像中的文字提取出来。Python中有几个常用OCR库,包括pyocr和EasyOCR。本文将对它们进行比较,并提供一些示例代码来演示它们在实际接口自动化工作中的应用。
python实现文字识别
最新发布
weixin_45570158的博客
08-12 692
Python中实现文字识别OCR, Optical Character Recognition)的一种流行方式是使用开源库如Tesseract。Tesseract是一个由HP实验室开发、后来由Google优化的OCR引擎,支持多种操作系统,并且能够识别多种语言的文本。
ICDAR 2019论文:自然场景文字定位技术详解
美团技术团队
09-26 7056
总第358篇2019年 第36篇自然场景图像中的文字识别应用广泛,其中文字定位是最重要的一步,但技术上极具挑战。本文提出了一个高效的场景文本检测框架,取得了明显的效果提升...
Python实现OCR大批量识别图片文字,并将文字保存到txt文档中,文末源码直接拿!
高级数据分析师,分享Python知识
07-07 2965
本项目使用的文字识别模型来自飞桨开源模型:该模型基于检测得到的文本框,继续识别文本框中的中文文字。之后对检测文本框进行角度分类。最终识别文字算法采用即卷积递归神经网络。其是DCNN和RNN的组合,专门用于识别图像中的序列式对象。与CTC loss配合使用,进行文字识别,可以直接从文本词级或行级的标注中学习,不需要详细的字符级的标注。该Module是一个通用的OCR模型,支持直接预测。支持识别多种图片类型支持自定义图片路径支持大批量的图片识别支持将每一张图片的文字写入对应的txt文件中。
python写一个图像文字识别OCR工具
人工智能算法与工程实践
12-07 3万+
含文本区域检测+文字识别
Python图像处理之图片文字识别OCR
热门推荐
山阴少年
06-09 14万+
OCR与Tesseract介绍   将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR)。可以实现OCR 的底层库并不多,目前很多库都是使用共同的几个底层OCR 库,或者是在上面进行定制。   Tesseract 是一个OCR 库,目前由Google 赞助(Google 也是一家以OCR 和机器学习技术闻名于世的公司)。Tesseract...
Python文字识别
12-14
利用opencv的简易Python文字识别demo,可能有点小问题,随后会优化
python OCR识别
07-03
OCR 识别
python OCR 识别
06-28
图像识别,图像处理,图像识别,图像处理,图像识别,图像处理,图像识别,图像处理,图像识别,图像处理,图像识别,图像处理,图像识别,图像处理,图像识别,图像处理,
python实现简单的文字识别
09-19
主要为大家详细介绍了基于百度云文字识别API,python实现的简单文字识别,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Python文字识别——基于百度AI文字识别
01-07
Python文字识别—— 基于百度AI文字识别 该代码只能识别代码所在路径下的图片,希望大家交流下可以识别其它路径下图片的代码。。 from aip import AipOcr #这里所依赖的模块是baidu-aip,不是aip。 你的 APPID AK SK APP_ID = '你的 App ID' API_KEY = '你的 Api Key' SECRET_KEY = '你的 Secret Key' #client就是一个客户端,帮助我们识别文字 client = AipOcr(APP_ID, API_KEY, SECRET_KEY) #读取图片并转换成二进制数据 de
python图片识别OCR源码
02-29
Python图片识别OCR技术是计算机视觉领域的一个重要应用,它允许我们从图像中提取文本信息,这对于自动化处理、信息检索和数据分析等任务具有极大价值。在Python中,有许多库支持OCR(Optical Character Recognition...
python批量识别图片指定区域文字内容
01-20
另外,如果对识别精度有更高要求,可以考虑使用云服务提供的OCR API,如阿里云、腾讯云等,它们通常提供更为先进的文字识别技术。 总的来说,Python批量识别图片指定区域文字内容的工作流程是:先利用模板匹配定位...
Python PaddleOCR OCR结构化识别的例子
02-07
Python PaddleOCR 是由百度研发的一个开源的光学字符识别(Optical Character Recognition, OCR)工具包,它基于深度学习技术,设计用于解决各种场景下的文字检测与识别问题。该库具有以下特点: 1. 广泛适用性:...
pycharm ocr文字识别
09-24
基于引用内容,博主使用了PyQt、labelme和PaddleOCR等工具开发了一个桌面端OCR工具,用于快速实现图片中文本区域的自动检测和文本的自动识别。在使用Python中的PyCharm编写代码时,可以通过以下步骤实现OCR文字识别: 1. 在PyCharm中导入所需的库和模块,例如PaddleOCR和相关绘制函数。 2. 在代码中设置需要识别的语言类型,例如中文('ch')。 3. 指定待识别的图片路径。 4. 调用PaddleOCRocr函数进行识别,并将识别结果保存在result变量中。 5. 使用循环遍历result中的每一行文本,并打印出来。 以下是示例代码: ```python from paddleocr import PaddleOCR, draw_ocr ocr = PaddleOCR(use_angle_cls=True, lang="ch") img_path = './imgs/11.jpg' result = ocr.ocr(img_path, cls=True) for line in result: print(line) ``` 通过上述步骤,你可以在PyCharm中实现OCR文字识别
12
原创
6
点赞
82
收藏
28
粉丝
关注
私信
写文章

热门文章

  • python常用的OCR文字识别与图片定位方式 8739
  • Sourcetree的下载与安装 8163
  • VSCode的安装与卸载 1416
  • SpringBoot整合Mybatis后的yml配置 1267
  • Sourcetree的使用 742

分类专栏

  • 常用软件的安装与使用 4篇

最新评论

  • python常用的OCR文字识别与图片定位方式

    白杨松: 阁下在1.2中的图片,图片名称为zhuogui.png。看来也是玩游戏的高手!!

  • 图文解说SpringBoot项目的简单创建方法

    月独行: 写的很用心

最新文章

  • VsCode的常用插件安装与插件介绍
  • VSCode的安装与卸载
  • Sourcetree的使用
2022年8篇
2021年4篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

天下网标王优化SEO排名网站推广如何优化网站佳选火28星达如何做优化网站的二七区网站优化联系方式中山网站推广优化杜桥网站优化公司网站优化与排名培训班沧州百度快照网站优化多少钱企业新网站优化计划沧州网站优化方案网站排名优化seo网站优化提升网站推广搜索引擎优化论文热门网站优化系统加盟平台阳江公司网站关键词优化报价贵州湖南网站优化推广余姚网站优化选哪家一个神一般的优化网站网站seo的主要优化内容福州网站优化关键词福田各大网站优化成功案例网站目标关键词优化推广哪家好登封咨询网站搭建优化推广蜘蛛屯网站排名优化中文网站优化多少钱专业seo优化网站安徽企业网站推广优化提供深圳网站优化推广快速优化网站信息发布延庆优化网站建设香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化