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*icp1_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)

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(2023|CVPR,Corgi,偏移扩散,参数高斯分布,弥合差距)用于文本到图像生成的偏移扩散

Shifted Diffusion for Text-to-image Generation 公众:EDPJ(添加 VX:CV_EDPJ 或直接进 Q 交流群:922230617 获取资料) 目录 0. 摘要 1. 简介 2. 方法 2.1 偏移扩散 3. 实验 3.1 无监督文本到图像生成 3.2 无…

交友系统设计:哪种地理空间邻近算法更快?

小熊学Java:https://javaxiaobear.cn 交友与婚恋是人们最基本的需求之一。随着互联网时代的不断发展,移动社交软件已经成为了人们生活中必不可少的一部分。然而,熟人社交并不能完全满足年轻人的社交与情感需求,于是陌生人交友平台…

嵌入式面试准备

题目都摘于网上 嵌入式系统中经常要用到无限循环,如何用C编写死循环 while(1){}或者for(;😉 内存分区 代码区,全局区(全局变量,静态变量,以及常量),栈区,堆区 const关键…

智能优化算法应用:基于沙猫群算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于沙猫群算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于沙猫群算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.沙猫群算法4.实验参数设定5.算法结果6.参考文…

STM32实战之深入理解I²C通信协议

目录 IC的物理层 IC的协议层 IC特点 IC 总线时序图 软件模拟IC时序分享 例程简介 例程分享 STM32的IC外设 IIC(Inter-Integrated Circuit),也称为IC或TWI(Two-Wire Interface),是一种广泛使用的串行…

在VSCode中使用Git教程

文章目录 提交代码操作分支提交远程库拉取代码参考 介绍一下如何在VSCode中使用Git 首先在VSCode中打开一个项目 打开项目后, 点击下图按钮, 可以引入Git 提交代码 点击 ;相当于git add. 下面两张图, 第一张表示改文件后的号, 只会add本文件. 第二张图表示这段时…

leetcode 6. N 字形变换(medium)(优质解法)

链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 代码: class Solution {public String convert(String s, int numRows) {if(numRows 1) {return s;}int lengths.length();StringBuilder retnew StringBuilder();//获取…

选择排序之C++实现

描述 选择排序(Selection Sort)是一种简单直观的排序算法。它的基本思想是:每一轮从待排序的数据中选择最小(或最大)的一个元素,然后与待排序数据的第一个元素交换位置。对剩余未排序的数据重复这个过程&a…

C++ 基础

……………………………………………………………………………… 命名空间: 在 C语言环境中,当变量或函数发生冲突的时候,编译器会报错。在一些大工程中不同的板块往往由不同的人员进行编写,合并到一块时可能会出现名字冲突&…

Autosar CAN开发03(从实际应用认识CAN总线的物理层)

建议同时阅读本专栏的: Autosar CAN开发03(从实际应用认识CAN总线的物理层) Autosar CAN开发04(从实际应用认识CAN报文) Autosar CAN开发05(从实际应用认识CAN波特率) 前言 在上一章的《AU…

基于Python的新能源汽车销量分析与预测系统

温馨提示:文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 基于Python的新能源汽车销量分析与预测系统是一个使用Python编程语言和Flask框架开发的系统。它可以帮助用户分析和预测新能源汽车的销量情况。该系统使用了关系数据库进行数据存储,并…

thinkphp6.0的workerman在PHP8.0下报错

一、我先升级了thinkphp6.0到最新版本: composer update topthink/framework二、结果提示我composer版本过低,需要升级到2,于是我又升级了composer composer self-update 三、我又升级了workerman: composer require topthink/think-work…