基于深度学习OpenCV与python进行字符识别
off999 2024-10-22 13:32 28 浏览 0 评论
当我们在处理图像数据集时,总是会想有没有什么办法以简单的文本格式检索图像中的这些字符呢?
今天我们就一起看看有没有什么简单的办法可以实现这一功能~
对于字符识别,我们找到了一些在线工具可以使用,他们将获取用户的输入并提供输出信息。
字符识别:
字符识别程序有助于准确的从文本中识别出每个文本元素。
通过应用深度学习算法,可以准确的识别图像中字符或文本元素的并对其进行分类。这些字符一般有很大区别。
当我们使用普通技术来识别字符时,可能会在特定点上出现一些错误。如果我们使用基于深度学习的OpenCV算法将给出有效的输出。
对于运行模型的必须安装由Google作为光学字符识别引擎开发的tesseract。
pip install pytesseractOpenCV:
OpenCV是一种一项基本技术,我们主要利用他来消除的噪声以便进一步执行数据操作。
Open CV是深度学习技术领域中使用最广泛的算法。
它极大地依赖于受过训练的数据,并有助于识别图像中存在的文本。开放式简历使算法丢失的准确性变成一幅图画。灰度等级在字符识别领域提供了有效的分类。因此,我们特此导入所有必要的软件包,以使我们的模型可以正常使用。
为了在您的本地计算机上安装OpenCV,请使用以下命令...
pip install opencv-python图像可以直接读取到代码中吗?
? 让我们讨论影响识别字符的因素:
? 图像中的噪声会导致许多错误识别字符的因素。为了确保无噪音,我们在代码中消除了识别。
? 当图像不是高分辨率时,识别将失败。因此,为了获得准确的结果,最好拍摄高分辨率的图像。
? 有时图像的角度也会出现缺陷。
? 在假定文本时,图像的反射会导致错误。如此多的字母“ F”被识别为“ P”。
? 如果代码无法训练字体,字体也会改变结果。
? 各种图像具有本领域的各种表示风格,因此,当存在更多肤色或多种颜色时,会对图像中的识别文本做出不正确的假设。
考虑到以上所有因素,必须在所有测试用例通过的地方相应地构建代码。
使用OpenCV识别字符的Python代码:
导入所有软件包:
#import all the packages
import cv2
import numpy as np
import pytesseract
from PIL import Image使用软件包安装后,将其导入代码。
声明或初始化路径:
tesseract是一种开源工具,可以从网上下载。下载后,请提及其路径,如下所示。
# path of pytesseract execution folder
pytesseract.pytesseract.tesseract_cmd = 'C:\Program Files\Tesseract-OCR\tesseract.exe'# Path of image
main_path = r'qu12.png'主要方法:
在这部分代码中,我们正在实现
? 读取图像
? 灰度图像
? 进行膨胀和腐蚀以消除图像中不需要的噪声。
? 去除噪点后写图像。
? 应用阈值以获取唯一的黑白图片。
? 写入相同的图像以进行进一步的识别过程。
? 使用Tesseract进行字符识别。
def get_string(pic_path):
# Reading picture with opencv
pic = cv2.imread(pic_path)# grey-scale the picture
pic = cv2.cvtColor(pic, cv2.COLOR_BGR2GRAY)# Do dilation and erosion to eliminate unwanted noises
kernel = np.ones((1, 1), np.uint8)
pic = cv2.dilate(pic, kernel, iterations=20)
pic = cv2.erode(pic, kernel, iterations=20)# Write image after removed noise
cv2.imwrite(main_path + "no_noise.png", pic)# threshold applying to get only black and white picture
pic = cv2.adaptiveThreshold(pic, 300, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 31, 2)# Write the image for later recognition process
cv2.imwrite(main_path + "threshold.png", pic)# Character recognition with tesseract
final = pytesseract.image_to_string(Image.open(main_path + "threshold.png"))return final显示最终输出:
print(get_string(src_path))输入和输出:
在这里,我们给出输入到代码中的输入和输出,以便稍后执行代码。
输入:
从互联网上获取样本识别
输出:
执行代码后的屏幕截图
代码链接:可关注私信获取哦!
相关推荐
- 电脑动不动就卡住不动怎么回事
-
可能出现卡死原因:1、病毒引起,使你的电脑检测通过的程序太多,CPU主频性能不能充分发挥出来。2、温度过高,散热不好,使CPU性能下降。3、内存条太小,内存缺陷。5、可能设置了开机后自动登陆太多,自动...
- 笔记本风扇声音大怎么办(笔记本风扇声音非常大)
-
1.清理笔记本风扇灰尘一般而言,新买来的风扇总是噪声较小,而使用一段时间后会明显变大。其实,灰尘是造成风扇噪音上升的重要原因之一,因为无孔不入的灰尘总能钻进不完全密闭的机箱。当CPU风扇高速旋转时,漩...
- 如何添加无线网络打印机(如何添加无线网络打印机连接)
-
要添加网络打印机,您可以按照以下步骤进行操作:1.确保网络设置:首先,请确保您的计算机和打印机都已连接到同一个局域网或无线网络中,并且网络连接正常。确保您已经知道网络打印...
- 戴尔电脑一键重装系统(戴尔怎么一键重装系统)
-
若您需要重装戴尔系统,可以按照以下步骤进行操作:首先备份重要数据,然后获取系统安装介质,可以是光盘或USB驱动器。接下来,进入BIOS设置,将启动顺序调整为从安装介质启动。重启电脑后,按照屏幕提示进行...
- 电脑ip地址配置异常怎么修复
-
如果您发现IP地址配置异常,可以按照以下步骤尝试解决:1.检查网络连接:首先检查计算机、路由器或交换机等设备的网线、电源和连接状态是否正常,并确保网络设备正确连接。2.确认IP地址:检查您的计算机...
- 怎么把win7电脑恢复出厂设置
-
1.首先我们打开电脑找到“计算机”点击打开。2.进入页面然后我们点击“Windows7(C:)”打开C盘。3.我们在C盘界面找到Windows7并点击打开。4.进入到Win7文件夹中找到并双击“Sys...
- ctrl c 和 ctrl v 怎么按(一键复制粘贴)
-
左手小指按Ctrl键,食指按C键或者V键具体在按Ctrl+C的时候,无名指放在Z键上,中指放在X键上,食指按C键如果你也用这种方式的话,可能和我一样,第一次按的时候不习惯手指这样去分工的感觉,但是你...
- 玩游戏cpu温度多少正常(玩游戏cpu温度多少正常 贴吧)
-
在游戏过程中,CPU温度的正常范围通常在40°C至80°C之间。然而,具体的正常温度取决于CPU型号、散热系统和环境条件等因素。一般来说,如果CPU温度超过80°C,就可能存在过热的风险,需要采取措施...
- idm下载器(如何卸载idm下载器)
-
截至2023年9月3日,IDM(InternetDownloadManager)是一款非常受欢迎的下载工具,但它并没有被禁用。IDM可以帮助用户更快速、稳定地下载文件,提供了多线程下载、断点续传等...
- 电脑按f8后无法开机,三个键搞定
-
电脑开机按F8没有反应可能有多种原因,以下是一些可能的解决方法:尝试重启电脑:有时候,系统会出现临时问题,重启可能有助于解决。检查键盘连接和状态:确保键盘连接正常,没有故障。如果在其他地方测试过键盘是...
- 重装win7系统不能正常启动(win7重装系统后进不了系统)
-
1、点击Win10正式版桌面找到“此电脑”图标,右击并从弹出的右键菜单中选择“属性”项。2、此时将打开“控制”窗口,在左侧找到“高级系统设置”按钮点击进入详细设置界面。3、待打开“系统属性”窗口后,切...
- win7professional是什么版本
-
Windows7Professional是专业版。Windows7包含6个版本,分别为Windows7Starter(初级版)、Windows7HomeBasic(家庭普通版)、Win...
- tplink路由器怎么管理(tplink路由器管理app叫什么)
-
1、进入到路由器的管理界面,点击设置向导然后点下一步。2、选择工作模式,选择AP:接入点模式,点击下一步1.AP是WirelessAccessPoint的简称,中文名称:无线接入点;AP模式也...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
慕ke 前端工程师2024「完整」
-
失业程序员复习python笔记——条件与循环
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
