当前位置: 首页 > news >正文

调用paddleocr接口实现文本检测与识别,并在图像中显示识别结果

目录

一、按照官网步骤安装paddlepaddle和paddleocr(paddlepaddle我安装的是cpu版本)

二、运行下面的脚本

三、图像结果


一、按照官网步骤安装paddlepaddle和paddleocr(paddlepaddle我安装的是cpu版本)

doc/doc_ch/quickstart.md · PaddlePaddle/PaddleOCR - Gitee.com

二、运行下面的脚本

from paddleocr import PaddleOCR, draw_ocr
from PIL import Image, ImageDraw, ImageFont
import cv2
import matplotlib.pyplot as plt
import numpy as np# Paddleocr目前支持的多语言语种可以通过修改lang参数进行切换
# 例如`ch`, `en`, `fr`, `german`, `korean`, `japan`
ocr = PaddleOCR(use_angle_cls=True, lang="ch")  # need to run only once to download and load model into memory
img_path = 'images/img123.jpg'
result = ocr.ocr(img_path, cls=True)
for idx in range(len(result)):res = result[idx]for line in res:print(line)result = result[0]
boxleftup = [line[0][0] for line in result]
boxleftup = [[int(x) for x in row] for row in boxleftup]
boxrightbotm=[line[0][2] for line in result]
boxrightbotm = [[int(x) for x in row] for row in boxrightbotm]
txts = [line[1][0] for line in result]
scores = [line[1][1] for line in result]merged_list = []
for i in range(len(result)):merged_list.append([boxleftup[i], boxrightbotm[i], txts[i]])
print(merged_list)image = Image.open(img_path).convert('RGB')
image = np.asarray(image)# 将 NumPy 图像转换为 PIL 图像
pil_img = Image.fromarray(image)# 创建绘图对象
draw = ImageDraw.Draw(pil_img)
font = ImageFont.truetype("simfang.ttf", 30)
for (start, end, text) in merged_list:draw.rectangle([start[0], start[1], end[0], end[1]], outline="red", width=2)draw.text((start[0], start[1] - 30), text, fill=(0, 0, 0), font=font)  # 坐标、文本内容、颜色、字体plt.axis('off')
plt.imshow(pil_img)
plt.savefig('output1.jpg', transparent=True, dpi=500)
plt.show()

三、图像结果

 

 

相关文章:

调用paddleocr接口实现文本检测与识别,并在图像中显示识别结果

目录 一、按照官网步骤安装paddlepaddle和paddleocr(paddlepaddle我安装的是cpu版本) 二、运行下面的脚本 三、图像结果 一、按照官网步骤安装paddlepaddle和paddleocr(paddlepaddle我安装的是cpu版本) doc/doc_ch/quickstart.md PaddlePaddle/PaddleOCR - Gitee.com 二、…...

如何提升winform程序性能

提升WinForms程序性能是一个关键的优化任务,以下是一些可以帮助你提升性能的方法: 1. **UI延迟加载:** 如果你的WinForms界面很复杂,可以考虑将不必要的UI元素延迟加载,只在需要时加载,以减少启动时间和内…...

按钮权限控制

搜索关键字&#xff1a; 自定义指令传参| "自定义指令""dataset"|自定义指令dataset| "Vue""directives"|vue按钮权限实现 1、完整代码&#xff1a; <template> <div> <el-breadcrumb separator-class"el-icon…...

【脚本式设置环境变量】

在linux系统中&#xff0c;如果我打开一个软件需要如下操作&#xff0c;那将会是一件很麻烦的事情 cd dir #软件的文件路径 conda deactivate conda activate chatgpt python main.py【首先写一个chatgpt.sh脚本内容如下】 #!/bin/bash cd dir conda run -n chatgpt python m…...

软件开发bug问题跟踪与管理

一、Redmine 项目管理和缺陷跟踪工具 官网&#xff1a;https://www.redmine.org/ Redmine 是一个开源的、基于 Web 的项目管理和缺陷跟踪工具。它用日历和甘特图辅助项目及进度可视化显示&#xff0c;同时它又支持多项目管理。Redmine 是一个自由开源软件解决方案&#xff0c;…...

springboot+mp完成简单案例

目录 1.框架搭建 2.前端搭建 3.后端编写 需求&#xff1a;完成简单的连表条件查询以及添加即可 1.框架搭建 1.创建springboot项目 2.相关依赖 <!--web依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boo…...

cuml机器学习GPU库 sklearn升级版AutoDL使用

CUML库 最近在做机器学习任务的时候发现我自己的数据集太大&#xff0c;直接用sklearn 跑起来时间很长&#xff0c;然后问GPT得知了有CUML库&#xff0c;后来去研究了一下&#xff0c;发现这个库只支持linux系统&#xff0c;从官网直接获取下载命令基本上也实现不了最后&#…...

C语言练习题Day1

从今天开始分享C语言的练习题&#xff0c;每天都分享&#xff0c;差不多持续16天&#xff0c;看完对C语言的理解可能更进一步&#xff0c;让我们开始今天的分享吧&#xff01; 题目一 执行下面的代码&#xff0c;输出结果是&#xff08;&#xff09; int x5,y7; void swap()…...

使用kubeadm安装和设置Kubernetes(k8s)

用kubeadm方式搭建K8S集群 kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。 这个工具能通过两条指令完成一个kubernetes集群的部署&#xff1a; # 创建一个 Master 节点 kubeadm init# 将一个 Node 节点加入到当前集群中 kubeadm join <Master节点的IP和端口…...

Docker安装延迟队列插件

下载插件地址&#xff1a;https://www.rabbitmq.com/community-plugins.html 插件上传服务器 选择跟我们rabbitmq版本一致或者小于的插件即可。版本可在web管理首页查看。 将下载的插件上传到Linux系统上&#xff0c;使用 docker 命令将插件复制到容器内部 plugins目录下 do…...

推荐前 6 名 JavaScript 和 HTML5 游戏引擎

推荐&#xff1a;使用 NSDT场景编辑器 助你快速搭建3D应用场景 事实是&#xff0c;自从引入JavaScript WebGL API以来&#xff0c;现代浏览器具有直观的功能&#xff0c;使它们能够渲染更复杂和复杂的2D和3D图形&#xff0c;而无需依赖第三方插件。 你可以用纯粹的JavaScript开…...

【Django】 Task5 DefaultRouter路由组件和自定义函数

文章目录 【Django】 Task5 DefaultRouter路由组件和自定义函数1.路由组件1.1路由组件介绍1.2SimpleRouter1.3DefaultRouter1.4DefaultRouter示例1.5查看访问服务接口url 2.自定义函数 【Django】 Task5 DefaultRouter路由组件和自定义函数 Task5 主要了解了DefaultRouter路由…...

Git拉取分支、基于主分支创建新的开发分支、合并开发分支到主分支、回退上一次的merge操作

系列文章目录 第1章 Git拉取分支、基于主分支创建新的开发分支、合并开发分支到主分支、回退上一次的merge操作 文章目录 系列文章目录一、拉取分支二、如何从master分支创建一个dev分支三、如何将dev分支合并到master分支四、如何回退上一次的merge 一、拉取分支 项目文件夹…...

SpringBoot实现定时任务操作及cron在线生成器

spring根据定时任务的特征&#xff0c;将定时任务的开发简化到了极致。怎么说呢&#xff1f;要做定时任务总要告诉容器有这功能吧&#xff0c;然后定时执行什么任务直接告诉对应的bean什么时间执行就行了&#xff0c;就这么简单&#xff0c;一起来看怎么做 步骤①&#xff1a;…...

数据结构(Java实现)-栈和队列

栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。 先进后出 栈的使用 栈的模拟实现 上述的主要代码 public class MyStack {private int[] elem;private int usedSize;public MyStack() {this.elem new int[5];}Overridepublic …...

毕业季如何做好IT技术面试

在IT技术面试过程中&#xff0c;面试者需要展示多个方面的能力和素质&#xff0c;以确保其能够成功地适应公司的文化和环境&#xff0c;并为公司的发展做出贡献。本文将详细介绍IT技术面试的各个方面&#xff0c;并给出建议和指导。 简历和求职信 简历和求职信是面试官了解面…...

springcloud3 GateWay章节-Nacos+gateway(跨域,filter过滤等5

一 常用工具类 1.1 结构 1.2 跨域 Configuration public class CorsConfig {Beanpublic CorsWebFilter corsFilter() {CorsConfiguration config new CorsConfiguration();config.addAllowedMethod("*");config.addAllowedOrigin("*");config.addAllowe…...

Nodejs+Typescript+Eslint+Prettier+Husky项目构建

NodejsTypescriptEslintPrettierHusky项目构建 准备工作初始化项目Eslint安装和配置Prettier安装和配置在Eslint中使用Prettier插件Husky安装和配置修改tsconfig.json启用表示src目录 修改package.json设置vscode调试 仓库地址 准备工作 确保已经安装了git以及Node.js和npm&a…...

轻松正确使用代理IP

Hey&#xff0c;亲爱的程序员小伙伴们&#xff01;在进行爬虫时&#xff0c;你是否曾使用过别人的代理IP&#xff1f;是否因此慌乱&#xff0c;担心涉及违法问题&#xff1f;不要惊慌&#xff01;今天我将和你一起揭开法律迷雾&#xff0c;为你的爬虫之路保驾护航。快跟上我的节…...

SpringCloud教程 | 第二篇: 服务消费者(rest+ribbon)

在上一篇文章&#xff0c;讲了服务的注册和发现。在微服务架构中&#xff0c;业务都会被拆分成一个独立的服务&#xff0c;服务与服务的通讯是基于http restful的。Spring cloud有两种服务调用方式&#xff0c;一种是ribbonrestTemplate&#xff0c;另一种是feign。在这一篇文章…...

KART-RERANK大模型实战:Python爬虫数据智能排序与相关性分析

KART-RERANK大模型实战&#xff1a;Python爬虫数据智能排序与相关性分析 你是不是也遇到过这种情况&#xff1f;用Python爬虫吭哧吭哧抓了一大堆数据&#xff0c;结果发现里面什么都有&#xff1a;有用的、没用的、相关的、跑题的、高质量的、纯广告的……看着满屏的文本&…...

Ubuntu 20.04 LTS下Miniconda3安装与配置全攻略(含常见错误解决)

Ubuntu 20.04 LTS下Miniconda3安装与配置全攻略&#xff08;含常见错误解决&#xff09; 如果你正在Ubuntu 20.04 LTS上搭建Python开发或数据科学环境&#xff0c;Miniconda3绝对是一个值得考虑的选择。作为Anaconda的精简版&#xff0c;它保留了核心的conda包管理功能&#x…...

数据库字段ip地址varbinary、inet6_aton()、inet6_ntoa()等

文章目录准备数据inet6_aton()、 inet6_ntoa()其他函数为什么ip地址要用varbinary(16)?其他文档这里主要说下mysql的varbinary字段类型。准备数据 CREATE TABLE user_logs (id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,ip VARBINARY(16) NOT NULL COMMENT 存储IPv4/IPv6地…...

永磁同步电机全速域无位置传感器控制探索之旅

永磁同步电机全速域无位置传感器控制&#xff08;高频注入改进滑膜控制方法&#xff0c;PMSM矢量控制仿真&#xff09; 永磁同步电机-PMSM的仿真-原理-算法-复现 1&#xff09;关于PMSM控制算法的文章复现、matlab编程仿真等均可&#xff0c;Matlab/Simulink仿真建模 分析建模 …...

实战指南:在Stable Diffusion WebUI Forge中打造你的专属AI绘画模型

实战指南&#xff1a;在Stable Diffusion WebUI Forge中打造你的专属AI绘画模型 【免费下载链接】stable-diffusion-webui-forge 项目地址: https://gitcode.com/GitHub_Trending/st/stable-diffusion-webui-forge 你是否曾羡慕那些能够生成特定风格或角色的AI绘画模型…...

避坑指南:STM32CubeIDE按键消抖到底怎么做?HAL库延时函数调用详解

STM32按键消抖实战&#xff1a;从HAL_Delay到定时器的进阶方案 按键消抖是嵌入式开发中最基础却又最容易被忽视的技术细节之一。许多开发者在初次实现按键功能时&#xff0c;往往直接读取GPIO状态就认为完成了任务&#xff0c;直到产品进入现场测试阶段才发现按键响应不稳定、误…...

苹果M系列芯片用户必看:三步搞定iOS游戏在Mac上的完美运行方案

苹果M系列芯片用户必看&#xff1a;三步搞定iOS游戏在Mac上的完美运行方案 【免费下载链接】PlayCover Community fork of PlayCover 项目地址: https://gitcode.com/gh_mirrors/pl/PlayCover 还在为Mac上无法畅玩心爱的iOS游戏而烦恼吗&#xff1f;你是否想过&#xff…...

从零搭建你的数字工作室:一套搞定Ps、Pr、Ae、C4D、达芬奇的电脑配置与软件协同方案

从零搭建你的数字工作室&#xff1a;一套搞定Ps、Pr、Ae、C4D、达芬奇的电脑配置与软件协同方案 当你决定投身数字内容创作——无论是成为UP主、独立导演&#xff0c;还是开设小型广告工作室&#xff0c;一套能流畅运行主流创意软件的工作站是必不可少的。但面对Adobe全家桶、…...

告别纸上谈兵:在Multisim里调试交通灯仿真时,我踩过的这些坑希望你避开

告别纸上谈兵&#xff1a;在Multisim里调试交通灯仿真时&#xff0c;我踩过的这些坑希望你避开 第一次在Multisim里搭建完整的交通灯控制系统时&#xff0c;我以为只要按照教科书上的电路图连接好芯片和元件&#xff0c;仿真就能一帆风顺。但现实给了我当头一棒——数码管显示乱…...

实时语音合成全解析:技术原理、应用场景与未来展望

实时语音合成全解析&#xff1a;技术原理、应用场景与未来展望 引言 在人工智能浪潮席卷全球的今天&#xff0c;让机器“开口说话”已不再是科幻场景。实时语音合成&#xff08;Real-Time TTS&#xff09; 技术&#xff0c;作为连接数字世界与人类听觉的桥梁&#xff0c;正以…...