你好呀

首先安装好pycharm,我所使用的语言是python,并且利用Tesseract,安装的教程Tesseract OCR 安装过程_清都散闲客的博客-CSDN博客首先选择网站Tesseract User Manual | tessdocTesseract documentationhttps://tesseract-ocr.github.io/tessdoc/Home.html因为我需要的是windows,所以选择如下,可以根据自己的实际情况安排自己的下载内容:然后选择版本:下载之后自行安装。作者配合pycharm使用,后续增加识别文本的项目练习...https://blog.csdn.net/qq_41059950/article/details/122890276首先在pycharm中建立文件夹,点击在File中settings

在这里我们安装opencv-python,和pytesseract。到这一步,准备活动就基本完成了。

然后创建一个.py文件,开始我们的项目吧。

我默认你有一点点opencv的基础和python的基础。

import cv2
import pytesseractpytesseract.pytesseract.tesseract_cmd = "C:\\Program Files\\Tesseract-OCR\\tesseract.exe"
#添加的是你的tesseract的绝对路径,还要加上他的exe执行文件

下面读取一张照片,只要包含英文字母和数字就可以,这个随你喜欢,我的是这个

import cv2
import pytesseractpytesseract.pytesseract.tesseract_cmd = "C:\\Program Files\\Tesseract-OCR\\tesseract.exe"img = cv2.imread('Rescources/textone.png')
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
print(pytesseract.image_to_string(img))cv2.imshow('img',img)
cv2.waitKey(0)

首先你可以通过pytesseract.image_to_string()函数,检测出图片上的英文字母和数字

其次我们可以通过函数pytesseract.image_to_boxes()打印出每个数字或者字母的坐标,为后续的步骤做准备。

import cv2
import pytesseractpytesseract.pytesseract.tesseract_cmd = "C:\\Program Files\\Tesseract-OCR\\tesseract.exe"img = cv2.imread('Rescources/textone.png')
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
#print(pytesseract.image_to_string(img))
print(pytesseract.image_to_boxes(img))cv2.imshow('img',img)
cv2.waitKey(0)

接下来先完成字符检测。我们要给识别出来的英文和数字加个方框。

import cv2
import pytesseractpytesseract.pytesseract.tesseract_cmd = "C:\\Program Files\\Tesseract-OCR\\tesseract.exe"img = cv2.imread('Rescources/textone.png')
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
#print(pytesseract.image_to_string(img))
#print(pytesseract.image_to_boxes(img))### Detecting Characters  检测字符
Himg,Wimg,_ = img.shape
boxes = pytesseract.image_to_boxes(img)
for box in boxes.splitlines():#print(box)box = box.split(' ')#print(box)x,y,w,h = int(box[1]),int(box[2]),int(box[3]),int(box[4])#坐标是以左下角为中心,所以下面计算坐标要换算cv2.rectangle(img,(x,Himg-y),(w,Himg-h),(0,0,255),2)cv2.putText(img,box[0],(x,Himg-y+20),cv2.FONT_HERSHEY_DUPLEX,1,(0,50,255),2)cv2.imshow('img',img)
cv2.waitKey(0)

这一步基本上没啥难度,就是在获取的坐标上做文章而已。

当然我们我们只完成这点操作是远远不够的,我们要识别单词

import cv2
import pytesseractpytesseract.pytesseract.tesseract_cmd = "C:\\Program Files\\Tesseract-OCR\\tesseract.exe"img = cv2.imread('Rescources/textone.png')
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
#print(pytesseract.image_to_string(img))
#print(pytesseract.image_to_boxes(img))### Detecting Words 检测单词
Himg,Wimg,_ = img.shape
boxes = pytesseract.image_to_data(img)
print(boxes)
for x,b in enumerate(boxes.splitlines()):#如果是单词被识别出来,会返回12个参数if x!=0:b = b.split()if len(b)==12:#判断是否返回的是单词,利用是否是十二个参数x,y,w,h = int(b[6]),int(b[7]),int(b[8]),int(b[9])cv2.rectangle(img, (x,y), (w+x, h+y), (0, 0, 255), 2)cv2.putText(img, b[11], (x,y), cv2.FONT_HERSHEY_DUPLEX, 1, (0, 50, 255), 2)cv2.imshow('img',img)
cv2.waitKey(0)

你也可以更改配置来自由的选择自己识别的是什么,比如说只识别数字,这是ome 和psm的具体参数代表的意思。

cong = r'--oem 3 --psm 6 outputbase digits'#添加命令
boxes = pytesseract.image_to_data(img,config=cong)

只需要在上面一个程序中增加和修改这些即可

import cv2
import pytesseractpytesseract.pytesseract.tesseract_cmd = "C:\\Program Files\\Tesseract-OCR\\tesseract.exe"img = cv2.imread('Rescources/textone.png')
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
#print(pytesseract.image_to_string(img))
#print(pytesseract.image_to_boxes(img))### Detecting Words 检测单词
Himg,Wimg,_ = img.shape
cong = r'--oem 3 --psm 6 outputbase digits'#添加命令
boxes = pytesseract.image_to_data(img,config=cong)
print(boxes)
for x,b in enumerate(boxes.splitlines()):if x!=0:b = b.split()if len(b)==12:#判断是否返回的是单词,利用是否是十二个参数x,y,w,h = int(b[6]),int(b[7]),int(b[8]),int(b[9])cv2.rectangle(img, (x,y), (w+x, h+y), (0, 0, 255), 2)cv2.putText(img, b[11], (x,y), cv2.FONT_HERSHEY_DUPLEX, 1, (0, 50, 255), 2)cv2.imshow('img',img)
cv2.waitKey(0)

ok,这次的小项目就到这里啦,下次见。

利用opencv识别文本相关推荐

  1. python如何实现找图_利用OpenCV和Python实现查找图片差异

    使用OpenCV和Python查找图片差异 flyfish 方法1 均方误差的算法(Mean Squared Error , MSE) 下面的一些表达与<TensorFlow - 协方差矩阵&g ...

  2. 利用OpenCV、Python和Ubidots构建行人计数器程序(附完整代码)

    作者 | Jose Garcia 译者 | 吴振东 校对 | 张一豪.林亦霖,编辑 | 于腾凯 来源 | 数据派(ID:datapi) 导读:本文将利用OpenCV,Python和Ubidots来编写 ...

  3. 利用OpenCV识别玻璃纤维织物劈缝缺陷

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 玻璃纤维织物是经编多轴向织物,由一层或多层平行的纱线按照尽可能多的 ...

  4. opencv resize_利用OpenCV 识别两张相似的图片

    Background: 在我们项目中,用到U-net,我们对训练样本图片使用labelme进行标定,对标定生成的json文件labelme_json_to_dataset生成标注图像,由于小伙伴将生成 ...

  5. 独家|OpenCV1.9 如何利用OpenCV的parallel_for_并行化代码(附代码)

    翻译:陈之炎 校对:顾伟嵩本文约3200字,建议阅读7分钟本教程的目标是展示如何使用OpenCV的parallel_for_框架轻松实现代码并行化. 目标 本教程的目标是展示如何使用OpenCV的pa ...

  6. opencv 取roi_利用OpenCV 识别两张相似的图片

    Background: 在我们项目中,用到U-net,我们对训练样本图片使用labelme进行标定,对标定生成的json文件labelme_json_to_dataset生成标注图像,由于小伙伴将生成 ...

  7. 如何利用OpenCV寻找轮廓的中心?

    简 介: 本文介绍了利用OpenCV和Python编程来计算形状轮廓的中心点.当然后面还会继续给出如何通过轮廓来分辨物体形状种类,以及对于各自的颜色进行标准. 关键词: OpenCV,contours ...

  8. 利用OpenCV读取和写入视频

    简 介: 本文介绍了如何对三种不同的视频源(视频文件, 序列图片以及网络摄像头)来进行读取显示视频,使用视频捕获对象. 也给出了如何通过视频捕获对象获取视频流的重要元数据. 介绍了使用视频写入对象把视 ...

  9. python中import cv2遇到的错误及安装方法_独家利用OpenCV,Python和Ubidots来构建行人计数器程序(附代码amp;解析)...

    作者:Jose Garcia 翻译:吴振东 校对:张一豪 本文约4000字,建议阅读14分钟. 本文将利用OpenCV,Python和Ubidots来编写一个行人计数器程序,并对代码进行了较为详细的讲 ...

最新文章

  1. 计算机网络基础 — 网络设备 — 网桥(Bridge)
  2. 进一步考察与UI相关的安全漏洞-上
  3. .NET应用如何优雅的实现功能定时开关
  4. 二叉树题目----2 检查两颗树是否相同 和 对称二叉树的判定
  5. linux僵尸进程产生的原因以及如何避免产生僵尸进程defunct
  6. VS2005 .vs. Orcas
  7. 力压 MongoDB、Redis,PostgreSQL 蝉联“年度数据库”!
  8. 【亲测有效】无法定位链接器!请检查 tools\link.ini 中的配置是否正确的解决方案
  9. mysql中表结构语句_mysql中表数据与表结构复制语句
  10. C++_CopyConstructor(副本构造器 防止指针重复释放)
  11. openstack-O版-glance安装
  12. java applet介绍,Java Applet教程介绍
  13. 【玩转数据系列十五】机器学习PAI为你自动写歌词,妈妈再也不用担心我的freestyle了(提供数据、代码)
  14. 智慧公安大数据人工智能
  15. win10去掉快捷方式小箭头_强迫症狂喜!一招去除Win10桌面图标小箭头
  16. 【附源码】Java计算机毕业设计家政管理系统(程序+LW+部署)
  17. java把时间戳转换成时间_(转)java时间与时间戳互转
  18. 怎么记住1月-12月的英文
  19. [转] PID算法的解析()
  20. 英语语言能力测试软件,英语语言能力测试标准

热门文章

  1. javabeans基础
  2. 进程三态与五态是什么?
  3. MATLAB 声音文件分析、处理。
  4. Python金融学-风险中性测度
  5. Android | 说说Presentation
  6. MySQL inet aton函数,MySQL IP转数字函数 INET_ATON() INET_NTOA()
  7. 数学在机器学习中的重要性
  8. 全国大学生英语竞赛考题总结
  9. 【干货】Python文件打包 .exe文件反编译
  10. PHP获取用户浏览器信息