OpenCV实战——文本检测

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)

在这里插入图片描述

下面的就不在重复赘述了

在这里插入图片描述

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Opencv的车道线检测:1. 图像加载;2.图像预处理:图片灰度化,高斯滤波;3.Cany边缘检测;4.感兴趣区域检测;5.霍夫直线检测 ;6.直线拟合;7.车道线叠加;8.图片和视频测试;9.可视化界面pyqt5 (可选)。 【探索人工智能的宝藏之地】 无论您是计算机相关专业的在校学生、老师,还是企业界的探索者,这个项目都是为您量身打造的。无论您是初入此领域的小白,还是寻求更高层次进阶的资深人士,这里都有您需要的宝藏。不仅如此,它还可以作为毕设项目、课程设计、作业、甚至项目初期的立项演示。 【人工智能的深度探索】 人工智能——模拟人类智能的技术和理论,使其在计算机上展现出类似人类的思考、判断、决策、学习和交流能力。这不仅是一门技术,更是一种前沿的科学探索。 【实战项目与源码分享】 我们深入探讨了深度学习的基本原理、神经网络的应用、自然语言处理、语言模型、文本分类、信息检索等领域。更有深度学习、机器学习、自然语言处理和计算机视觉实战项目源码,助您从理论走向实践,如果您已有一定基础,您可以基于这些源码进行修改和扩展,实现更多功能。 【期待与您同行】 我们真诚地邀请您下载并使用这些资源,与我们一起在人工智能的海洋中航行。同时,我们也期待与您的沟通交流,共同学习,共同进步。让我们在这个充满挑战和机遇的领域中共同探索未来!
### 回答1: 人脸识别系统是一种利用计算机技术对人脸进行识别和验证的系统。其中,opencv人脸检测是一种基于opencv库的人脸检测算法,可以通过计算机视觉技术对图像或视频中的人脸进行检测和识别,具有高效、准确、实时等特点,广泛应用于安防、人机交互、智能家居等领域。 ### 回答2: 人脸识别系统是一种可以通过对人脸进行特征提取、比对和识别的技术,目前已广泛应用在生物特征识别、安防监控等领域。而OpenCV人脸检测是在计算机视觉领域中应用广泛的一种算法。 OpenCV是一个开源计算机视觉库,提供了很多图像处理和机器视觉算法,其中人脸检测OpenCV中应用最广泛的算法之一。OpenCV人脸检测的基本思路是利用Haar-like特征进行人脸检测。 Haar-like特征是一组由Viola和Jones在2001年提出的能够对图像进行分类的特征,主要由白色和黑色的矩形块组成。这些特征可以在人脸区域和非人脸区域产生显著的区别,因此可以用来进行人脸检测。在OpenCV中,利用Adaboost算法来训练分类器,从而实现人脸检测OpenCV人脸检测有以下几个优点: 1. 检测速度快:OpenCV的人脸检测算法可以实现实时检测,能够处理实时视频,并对每一帧进行人脸检测。 2. 高检测率和低误检率:OpenCV人脸检测算法经过大量的训练和优化,能够准确地检测人脸,且误检率低。 3. 应用广泛:由于OpenCV是一个开源库,其特性与应用广泛,可以应用于不同领域的人脸检测。 4. 动态人脸识别:OpenCV人脸检测算法能够在不同角度、不同光照条件下对人脸进行检测和识别。 5. 简单易用:OpenCV提供了简单的API调用,即可完成人脸检测。同时,OpenCV还提供了丰富的文档和示例,使得人脸检测的实现变得更加简单。 总之,OpenCV人脸检测算法是一种可靠的人脸检测技术,可以广泛应用于不同领域。通过不断地优化和训练,OpenCV的人脸检测算法仍有望在未来得到进一步的提升。 ### 回答3: 人脸识别是一种高科技应用,它可以在不进行人工干预的情况下识别人们的身份。在过去的几年里,随着计算机技术的不断发展壮大,人脸识别技术得到了迅速的发展和应用。 Opencv人脸检测是一种常见的人脸识别技术,它可以快速、准确地检测人脸并提取出相关的数据信息。Opencv人脸检测使用基于统计学的模型,可以快速检索出整张图像中的所有人脸,并用边缘高亮标出。其识别空间包括面部区域,由眼睛、口鼻、眉毛和脸型等特征组成。而为了提高识别的准确度,Opencv人脸检测还涉及到其他一些算法,比如特征提取、人脸分类和智能识别。 Opencv人脸检测是非常重要的安全工具,它可以用于认证和安全访问控制、图像搜索和媒体应用。在计算机视觉和机器学习领域,Opencv人脸检测是重要的探究之一,因为对于如何解决图像多样性问题的机器人操作的研究而言,人脸检测是非常关键的。Opencv人脸检测还可以用于许多领域,如自然语言处理、光学字符识别等,进一步方便了计算机与人类之间的交流。 在未来,Opencv人脸检测技术有望得以发展与扩展,实现更加准确、精密的人脸识别,为广大人民群众的生产生活提供更多的便利与保障。诚然,Opencv人脸检测仅仅是人脸识别的一个小部分,但它在其中占有重要的地位,在此我们真诚地期待着Opencv人脸检测技术能够顺利地实现更深入的发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值