PaddleOCR 的使用,极简介绍

安装

参考github的官网就可以:

github链接

简单的说,就是两句话:

python3 -m pip install paddlepaddle-gpu -i https://mirror.baidu.com/pypi/simple

pip install "paddleocr>=2.0.1" # 推荐使用2.0.1+版本

Python下的使用

from paddleocr import PaddleOCR
import cv2
import numpy as np
if __name__=="__main__":

    ocr = PaddleOCR(use_angle_cls=True, use_gpu=True,ocr_version='PP-OCRv4')
    img_path = r'F:\dataset\images\1.bmp'
    img=cv2.imread(img_path)
    result = ocr.ocr(img, cls=True)[0]
    for line in result:
        list_points=line[0]
        str_data,conf=line[1]
        pts = np.array(list_points, np.int32)
        pts = pts.reshape((-1, 1, 2))
        cv2.polylines(img, [pts], isClosed=True, color=(0, 255, 255), thickness=1)
        cv2.imshow("img",img)
        cv2.waitKey(0)

这里面包括了图片的读取,推理过程,还有检测框的显示。

如果想对每一个字符都做框选,可以多写几句画,把每个框都拆出来。

from paddleocr import PaddleOCR
import cv2
import numpy as np
if __name__=="__main__":
    ocr = PaddleOCR(use_angle_cls=True, use_gpu=True,ocr_version='PP-OCRv4')
    img_path = r'F:\dataset\images\1.bmp'
    img=cv2.imread(img_path)
    result = ocr.ocr(img, cls=True)[0]
    for line in result:
        list_points=line[0]
        str_data,conf=line[1]
        len_str=len(str_data)
        p0,p1,p2,p3=np.array(list_points)
        for ic in range(len_str):
            p0_c=p0+(p1-p0)/len_str*ic
            p1_c=p0+(p1-p0)/len_str*(ic+1)
            p2_c=p3+(p2-p3)/len_str*(ic+1)
            p3_c=p3+(p2-p3)/len_str*(ic)
            list_ps=[p0_c,p1_c,p2_c,p3_c]
            pts = np.array(list_ps, np.int32)
            pts = pts.reshape((-1, 1, 2))
            cv2.polylines(img, [pts], isClosed=True, color=(0, 255, 255), thickness=1)
            cv2.imshow("img",img)
            cv2.waitKey(0)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/270497.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NAT协议的实现方式

在网络通信中,NAT协议(Network Address Translation,网络地址转换)扮演着关键角色,允许内部网络与外部网络之间进行有效的通信。 实现内外网之间网络地址转换的过程中,NAT采用了不同的实现方式,…

FL Studio 21最新版本for mac 21.2.2.3470中文解锁版

FL Studio 21最新版本for mac 21.2.2.3470中文解锁版是最新强大的音乐制作工具。它可以与所有类型的音乐一起创作出令人惊叹的音乐。它提供了一个非常简单且用户友好的集成开发环境(IDE)来工作。这个完整的音乐工作站是由比利时公司 Image-Line 开发的。…

了解OAuth 2.0以及社交登录认证授权流程

1.前言 目前在写一个电商项目,可以通过手机号进行注册登录,为了方便用户使用本平台的系统,引入社交登录功能,这里使用的是gittee。 2.OAuth 2.0介绍 当谈到网络安全和身份验证时,OAuth 2.0(开放授权 2.0&a…

AXI总线协议---关键信号波形图分析

写过程协议图 读过程协议图 读协议执行顺序图 写协议顺序图 单箭头表示两个信号谁先有效无所谓,双箭头表示必须要等到前一个信号有效才能将后面的信号有效 如何体现协议图中的通道理解 声明:以上图均采用AMBA总线文档图 写过程关键信号 主机 写地址—M…

MySQL集群架构搭建以及多数据源管理实战

MySQL集群架构搭建以及多数据源管理实战 ​ 数据库的分库分表操作,是互联网大型应用所需要面对的最核心的问题。因为数据往往是一个应用最核心的价值所在。但是,在最开始的时候,需要强调下,在实际应用中,对于数据库&a…

Keil5 5.38官方下载、安装及注册教程(详细版)

一、下载地址 官方C51版本下载地址:https://www.keil.com/demo/eval/c51.htm 官方ARM版本下载地址:https://www.keil.com/demo/eval/arm.htm 注:两个版本的安装教程一样 Keil注册机2032年: 链接:https://pan.baidu.…

虚拟机安装配置winServer2012

🎬 艳艳耶✌️:个人主页 🔥 个人专栏 :《产品经理如何画泳道图&流程图》 ⛺️ 越努力 ,越幸运 目录 1、准备工作: 2、VM虚拟机的安装 3、配置虚拟网络编辑器 3、安装系统 4、远程连接步骤 5、…

探索 HTTP 请求的世界:get 和 post 的奥秘(下)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

华为鸿蒙操作系统简介及系统架构分析(1)

本文部分内容参考&#xff1a; 鸿蒙系统学习笔记(一) 鸿蒙系统介绍 特此致谢。 一、简介及历史 1. 简介 鸿蒙操作系统&#xff08;HarmonyOS&#xff09;是华为公司研制的一款自主版权的操作系统。2019年8月9日&#xff0c;鸿蒙系统在华为开发者大会<HDC.2019>上正式…

AI大模型:未来科技的新篇章

目录 1AI大模型&#xff1a;未来科技的新篇章 2AI超越数学家攻克经典数学难题&#xff1b;非侵入式设备解码大脑思维 1AI大模型&#xff1a;未来科技的新篇章 随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已经成为了我们生活中不可或缺的一部分。而AI大…

图解机器学习神器:Scikit-Learn

算法进阶 ​​本文详解 Scikit-learn 工具库的用法&#xff0c;覆盖机器学习基础知识、SKLearn讲解、SKLearn三大核心API、SKLearn高级API等内容。 https://www.showmeai.tech/article-detail/203 我们在上一篇SKLearn入门与简单应用案例 [1] 里给大家讲到了 SKLearn 工具的基…

docker的一些思考

1.docker是啥&#xff1f; 2.镜像执行流程 3.一些疑惑和解答 1. 2.

【Jmeter、postman、python 三大主流技术如何操作数据库?】

前言 1、前言 只要是做测试工作的&#xff0c;必然会接触到数据库&#xff0c;数据库在工作中的主要应用场景包括但不限于以下&#xff1a; 功能测试中&#xff0c;涉及数据展示功能&#xff0c;需查库校验数据正确及完整性&#xff1b;例如商品搜索功能 自动化测试或性能测试…

Python中assert的用法

assert翻译成中文是“断言”的意思&#xff0c;用于判断一个表达式&#xff0c;在表达式条件为 false 的时候触发异常。断言可以在条件不满足程序运行的情况下直接返回错误&#xff0c;而不必等待程序运行后出现崩溃的情况&#xff0c;例如我们的代码只能在 Linux(Windows) 系统…

Pycharm的码云代码上传、下载步骤

前提&#xff1a;本地已经安装 git 安装包才行 注意注意&#xff1a;避免少出现 冲突&#xff1a;建议&#xff0c;先 pull &#xff0c;再 push。 下载&#xff1a; 上传&#xff1a;

〖Python网络爬虫实战㊹〗- JavaScript Hook 的用法

订阅&#xff1a;新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列&#xff08;零基础小白搬砖逆袭) 说明&#xff1a;本专栏持续更新中&#xff0c;订阅本专栏前必读关于专栏〖Python网络爬虫实战〗转为付费专栏的订阅说明作者&#xff1…

MicroPython的中断处理

本文会简单介绍中断的基本原理&#xff0c;对MicroPython在处理中断时的一些机制和问题进行阐述&#xff0c;并对实时控制中断编程做简单的介绍。 中断 什么是中断&#xff1f; 中断是计算机系统中非常重要的一种机制&#xff0c;简单的说就是当有I/O或其它因素发出中断信号…

C++书籍推荐(持续更新...)

目录 新手C Primer Plus 初级数据结构算法设计与分析 中级C Core GuidelinesEffective CMore Effective C 高级C并发编程实战C Templates 专家C新经典 设计模式 大师计算之魂 神级传说 新手 完全适合小白的书籍 C Primer Plus 《C Primer Plus》这本书是一本深入浅出的C/C编程指…

openGauss学习笔记-173 openGauss 数据库运维-备份与恢复-导入数据-对表执行VACUUM

文章目录 openGauss学习笔记-173 openGauss 数据库运维-备份与恢复-导入数据-对表执行VACUUM openGauss学习笔记-173 openGauss 数据库运维-备份与恢复-导入数据-对表执行VACUUM 如果导入过程中&#xff0c;进行了大量的更新或删除行时&#xff0c;应运行VACUUM FULL命令&…

AI 引擎系列 8 - 运行时比率参数简介

简介 在 Versal AI 引擎 2 一文 中&#xff0c;我们注意到计算图 (graph) 文件中有一行内容用于为每个内核实例定义运行时比率参数。 在本文中&#xff0c;我们将讲解该参数如何影响 AI 引擎应用的资源使用率和性能。 要求 下文要求您通读前几篇 AI 引擎系列博文。 AI 引擎系…