OpenCV实战——文本检测

article/2025/9/10 18:16:34

OpenCV实战——文本检测

    • tesseract的安装
    • 代码实践
      • 将图片中的内容识别打印,并绘制边框
      • 单词(word)检测
      • 只进行数字识别

tesseract的安装

首先说一下下官网的地址:下载地址

大家根据自己的操作系统(是32位还是64位,选择什么版本的,自己进行选择就好了)

我下载的是5.x版本的(大家可以用迅雷下载,确实快!)

在这里插入图片描述

然后找到它,双击:(我没找到中文,就English,其他的我也不懂是啥语言啊!!!)

在这里插入图片描述

接下来是:

在这里插入图片描述

点击next

在这里插入图片描述

我也想不同意,但是没办法,就agree吧

接下来是选择角色,我选的是just for me,也没其他人用啊(大家根据自己需求即可

在这里插入图片描述

接下来是需要选择要下的内容,第一次下,我也不知道,就全部都点了吧,也不大:

在这里插入图片描述

自己选择一下下载的位置(看自己需求,我建议不要都下载在C盘);
在这里插入图片描述
直接next:

在这里插入图片描述

等待下载:wait

在这里插入图片描述

下载完成:

在这里插入图片描述

搞一下环境路径:
在这里插入图片描述

测试:

在这里插入图片描述

代码实践

将图片中的内容识别打印,并绘制边框

import cv2 as cv
import pytesseract as pt# 指明tesseract_cmd命令,方便pytesseract调用
pt.pytesseract.tesseract_cmd = r'D:\tesseract\tesseract.exe'# 这里使用绝对路径,我这里如果使用相对路径的话会报错,具体原因还在解决(之前的内容没遇到)
img = cv.imread(r'D:\Python\PythonProject\OpenCVProject\img\1.png')
img = cv.cvtColor(img, cv.COLOR_BGR2RGB)# 展示图片中的内容
print(pt.image_to_string(img))cv.imshow('test', img)
cv.waitKey(0)

在这里插入图片描述

在这里插入图片描述

打印识别图片内容后的各个字符框的信息

import cv2 as cv
import pytesseract as pt# 指明tesseract_cmd命令,方便pytesseract调用
pt.pytesseract.tesseract_cmd = r'D:\tesseract\tesseract.exe'# 这里使用绝对路径
img = cv.imread(r'D:\Python\PythonProject\OpenCVProject\img\1.png')
img = cv.cvtColor(img, cv.COLOR_BGR2RGB)# 打印图片中内容的框的信息
print(pt.image_to_boxes(img))cv.imshow('test', img)
cv.waitKey(0)

在这里插入图片描述

上述图片的信息从左到右依次是:框的左下角的x、y,框的宽度、高度

接下来就是绘制边框了

import cv2 as cv
import pytesseract as pt# 指明tesseract_cmd命令,方便pytesseract调用
pt.pytesseract.tesseract_cmd = r'D:\tesseract\tesseract.exe'# 这里使用绝对路径
img = cv.imread(r'D:\Python\PythonProject\OpenCVProject\img\1.png')
img = cv.cvtColor(img, cv.COLOR_BGR2RGB)# 打印图片中内容的框的信息,并绘制边框
heightImg, weightImg, _ = img.shape
print(heightImg, weightImg)
boxes = pt.image_to_boxes(img)
# 以换行符来分割字符串
for b in boxes.splitlines():print(b)# 将字符串变成列表b = b.split(' ')# 处理绘制边框的数据x, y, w, h = int(b[1]), int(b[2]), int(b[3]), int(b[4])# 绘制边框cv.rectangle(img, (x, heightImg - y), (w, heightImg -h), (0, 0, 255), 2)# 在图像上输出检测结果cv.putText(img, b[0], (x, heightImg -y + 25), cv.FONT_HERSHEY_COMPLEX, 1, (255, 0, 0), 2)cv.imshow('textDetection', img)
cv.waitKey(0)

在这里插入图片描述

单词(word)检测

# 单词检测
import cv2 as cv
import pytesseract as pt# 指明tesseract_cmd命令,方便pytesseract调用
pt.pytesseract.tesseract_cmd = r'D:\tesseract\tesseract.exe'# 这里使用绝对路径
img = cv.imread(r'D:\Python\PythonProject\OpenCVProject\img\1.png')
img = cv.cvtColor(img, cv.COLOR_BGR2RGB)# 打印图片中内容的框的信息,并绘制边框
heightImg, weightImg, _ = img.shape
boxes = pt.image_to_data(img)
print(boxes)
# 通过枚举类,将第一行的标题信息进行注释(我们不需要)
for x, b in enumerate(boxes.splitlines()):if x != 0:b = b.split()# 如果说b的长度是12,说明是有预测结果的,就进行标注绘制框框if len(b) == 12:# 处理绘制边框的数据x, y, w, h = int(b[6]), int(b[7]), int(b[8]), int(b[9])# 绘制边框cv.rectangle(img, (x, y), (w + x, h + y), (0, 0, 255), 2)# 在图像上输出检测结果cv.putText(img, b[11], (x, y), cv.FONT_HERSHEY_COMPLEX, 1, (255, 0, 0), 2)
cv.imshow('textDetection', img)
cv.waitKey(0)

在这里插入图片描述

只进行数字识别

# 进行识别操作的时候进行配置即可
cong = r'--oem 3 --psm 6 outputbase digits'
boxes = pt.image_to_data(img, config=cong)
img = cv.imread(r'D:\Python\PythonProject\OpenCVProject\img\1.png')
img = cv.cvtColor(img, cv.COLOR_BGR2RGB)# 打印图片中内容的框的信息,并绘制边框
heightImg, weightImg, _ = img.shape
# 配置,只识别数字
cong = r'--oem 3 --psm 6 outputbase digits'boxes = pt.image_to_data(img, config=cong)
print(boxes)
# 通过枚举类,将第一行的标题信息进行注释(我们不需要)
for x, b in enumerate(boxes.splitlines()):if x != 0:b = b.split()# 如果说b的长度是12,说明是有预测结果的,就进行标注绘制框框if len(b) == 12:# 处理绘制边框的数据x, y, w, h = int(b[6]), int(b[7]), int(b[8]), int(b[9])# 绘制边框cv.rectangle(img, (x, y), (w + x, h + y), (0, 0, 255), 2)# 在图像上输出检测结果cv.putText(img, b[11], (x, y), cv.FONT_HERSHEY_COMPLEX, 1, (255, 0, 0), 2)
cv.imshow('textDetection', img)
cv.waitKey(0)

在这里插入图片描述

下面的就不在重复赘述了

在这里插入图片描述


http://chatgpt.dhexx.cn/article/UaglrcRE.shtml

相关文章

【文本检测与识别白皮书-3.1】第一节:常用的文本检测与识别方法

点击领取AI产品100元体验金:https://www.textin.com/coupon_redemption/index.htmlhttps://www.textin.com/coupon_redemption/index.html # 3.常用的文本检测与识别方法 ## 3.1文本检测方法 随着深度学习的快速发展,图像分类、目标检测、语义分割以及实…

paddleocr文本检测模型的训练

1、环境的安装和开源项目的下载 首先我个人建议,玩深度学习的话,不管是工作还是学习,最起码要配一个有GPU的电脑。我个人有着血淋淋的教训,我本人是电气工程的一名学生,本科期间一点深度学习和机器学习的基础都没有&am…

文本检测实战:使用OpenCV实现文本检测(EAST 文本检测器)

在本教程中,您将学习如何使用 OpenCV 使用 EAST 文本检测器检测图像中的文本。 EAST 文本检测器要求我们在我们的系统上运行 OpenCV 3.4.2 或 OpenCV 4 。 论文原文:https://arxiv.org/abs/1704.03155 代码地址:https://github.com/argman/…

脏话文本检测方案

目录 1. 场景2. 方案3. 数据增强4. 代码 1. 场景 在问答系统中用户问题可能存在违规情况,包含涉政、色情、辱骂文字的文本视为违规文本。本文提出一种违规文本检测方案, 本方案仅限于判断文本是否包含违规内容,属于文本分类问题。 2. 方案 方…

OCR文本检测模型:FCENet论文阅读笔记

文章目录 前言摘要(Abstract)1. 介绍(Introduction)2. 相关工作(Related Work)3. 方法(Approach)3.1 傅里叶轮廓嵌入(Fourier Contour Embedding)3.2 FCENet 4.实验(Experiments)总结 前言 最近…

文本检测数据集标注

工具链接:Curve-Text-Detector/data at master Yuliang-Liu/Curve-Text-Detector GitHub 目录 前言 一、工具介绍 1.标注格式 2.工具使用 二、标注步骤 1.数据准备 2.数据标注 3.数据集label可视化 总结 前言 本次介绍的标注方式和标注工具均为2017年华南…

AI实战:2019、2020最新的中文文本检测检测模型

2019、2020最新的中文文本检测检测模型 1、DBNet(Real-time Scene Text Detection with Differentiable Binarization) 论文地址:https://arxiv.org/pdf/1911.08947.pdf 作者:华中科技大学 Minghui Liao 1∗ , Zhaoyi Wan 2∗ ,…

人工智能学习--文本检测初探

一、相关概念和综述: 转自知乎热心网友 燕小花女士的内容,供学习使用,若侵权则删。貌似写于2018年12月,之后这几年的流行方法更新,自行搜索sci顶刊和会议论文。 https://zhuanlan.zhihu.com/p/52335619 文本检测的难…

文本检测综述(2017 ~ 2021)

文本检测综述 文本检测传统方法文本检测深度方法目标检测文本检测1.【ECCV2016】CTPN(Detecting Text in Natural Image with Connectionist Text Proposal Network)2. 【CVPR2017】SegLink(Detecting Oriented Text in Natural Images by li…

文本检测算法----TextFuseNet(IJCAI-PRICAI-20)

多种文本检测算法性能对比及算法介绍 (https://blog.csdn.net/qq_39707285/article/details/108754444) TextFuseNet: Scene Text Detection with Richer Fused Features 前言1. 算法简介2. 算法详解2.1 网络结构2.2 Multi-level Feature Representation2.3 Multi-path Fusion …

Exploring the Capacity of Sequential-free Box Discretization Network for Omnidirectional Scene Text

Paper : https://arxiv.org/abs/1912.09629v1 Code : https://tinyurl.com/sbdnet SBD首先将四边形边框离散为几个关键边缘,其中包含所有可能的水平和垂直位置。为了解码准确的顶点位置,提出了一种简单而有效的匹配程序来重构四边形边界框。 基本思想是…

文本检测模型综述

之前做车牌检测使用文本检测模型,如east、ctpn和textboxes,但是效果不是很好,需要针对车牌专门训练。后面就采用ssd和yolo进行车牌的检测,但是车牌有时是旋转的,使用ssd和yolo模型无法对车牌的四个点进行精确定位&…

OCR系列——文本检测任务

1. 简介 文本检测任务是找出图像或视频中的文字位置。不同于目标检测任务,目标检测不仅要解决定位问题,还要解决目标分类问题。 目标检测和文本检测同属于“定位”问题。但是文本检测无需对目标分类,并且文本形状复杂多样。 当前所说的文本…

文本检测(Text Detection)简要综述

文章目录 检测(Detection)在计算机视觉中的位置检测任务经典数据集评价指标发展历史什么叫Anchor检测架构RPNFPN(特征金字塔网络) 几个文本检测的较新方法FOTS(【2018CVPR】Fast Oriented Text Spotting with a Unified Network)TextSnake(【2018ECCV】 TextSnake: A Flexible …

思维导图——线性代数知识点总结

线性代数知识点总结 期末,总结了线性代数的相关知识点。

线性代数知识点总结,基础概念和计算整理(手写版)

线性代数中一定必须要掌握的基础概念和计算的整理,简单易懂,适合入门和复习。

线性代数基础知识点回顾与总结(一):行列式与矩阵

线性代数基础知识点回顾与总结(一):行列式与矩阵 介绍 骨骼图 1.行列式 排列: 1,2,,n组成的有序数组称为n阶排列。 逆序:大数排在小数前。自然排列为偶排列。 n阶行列式的值等于不同行的n…

线性代数-行列式知识总结

1、知识脉络如图 2、二阶与三阶行列式 (1)定义略 (2)二阶行列式与三阶行列式的计算“对角线法则”,三阶可降为二阶(方便计算) 如图 注意符号 (3)行列式线性方程组的关系 …

深度学习涉及到的线性代数知识点总结(二)

文章目录 一、余弦相似度和欧式距离的关系二、相关性三、基四、线性变换五、仿射变换六、矩阵特征方程七、相似矩阵八、奇异值分解九、谱范数 一、余弦相似度和欧式距离的关系 如果对向量模长进行归一化,欧式距离和余弦相似度有如下计算关系: ● 适用场…