点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

当我们在处理图像数据集时,总是会想有没有什么办法以简单的文本格式检索图像中的这些字符呢?今天我们就一起看看有没有什么简单的办法可以实现这一功能~对于字符识别,我们找到了一些在线工具可以使用,他们将获取用户的输入并提供输出信息。

字符识别:

字符识别程序有助于准确的从文本中识别出每个文本元素。

通过应用深度学习算法,可以准确的识别图像中字符或文本元素的并对其进行分类。这些字符一般有很大区别。

当我们使用普通技术来识别字符时,可能会在特定点上出现一些错误。如果我们使用基于深度学习的OpenCV算法将给出有效的输出。

对于运行模型的必须安装由Google作为光学字符识别引擎开发的tesseract。

pip install pytesseract

OpenCV:

OpenCV是一种一项基本技术,我们主要利用他来消除的噪声以便进一步执行数据操作。

Open CV是深度学习技术领域中使用最广泛的算法。

它极大地依赖于受过训练的数据,并有助于识别图像中存在的文本。开放式简历使算法丢失的准确性变成一幅图画。灰度等级在字符识别领域提供了有效的分类。因此,我们特此导入所有必要的软件包,以使我们的模型可以正常使用。

为了在您的本地计算机上安装OpenCV,请使用以下命令...

pip install opencv-python

图像可以直接读取到代码中吗?

• 让我们讨论影响识别字符的因素:

• 图像中的噪声会导致许多错误识别字符的因素。为了确保无噪音,我们在代码中消除了识别。

• 当图像不是高分辨率时,识别将失败。因此,为了获得准确的结果,最好拍摄高分辨率的图像。

• 有时图像的角度也会出现缺陷。

• 在假定文本时,图像的反射会导致错误。如此多的字母“ F”被识别为“ P”。

• 如果代码无法训练字体,字体也会改变结果。

• 各种图像具有本领域的各种表示风格,因此,当存在更多肤色或多种颜色时,会对图像中的识别文本做出不正确的假设。

考虑到以上所有因素,必须在所有测试用例通过的地方相应地构建代码。

使用OpenCV识别字符的Python代码:

导入所有软件包:

#import all the packagesimport cv2import numpy as npimport pytesseractfrom PIL import Image

使用软件包安装后,将其导入代码。声明或初始化路径:tesseract是一种开源工具,可以从网上下载。下载后,请提及其路径,如下所示。

# path of pytesseract execution folder pytesseract.pytesseract.tesseract_cmd = 'C:\Program Files\Tesseract-OCR\tesseract.exe'# Path of imagemain_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))

输入和输出:

在这里,我们给出输入到代码中的输入和输出,以便稍后执行代码。

输入:

从互联网上获取样本识别

输出:

执行代码后的屏幕截图

代码链接:https : //github.com/eazyciphers/deep-learning-tutors

参考文献:

https://www.researchgate.net/profile/Andrew_Agbemenu/publication/325223548_An_Automatic_Number_Plate_Recognition_System_using_OpenCV_and_Tesseract_OCR_Engine/links/5c87e7ea299bf14e7e781750/An-Automatic-Number-Plate-Recognition-System-using-OpenCV-and-Tesseract-OCR-Engine.pdf

https://en.wikipedia.org/wiki/Tesseract_(software)

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

opencv threshold_基于深度学习OpenCV与python进行字符识别相关推荐

  1. 利用OpenCV实现基于深度学习的超分辨率处理

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 OpenCV是一个非常强大的计算机视觉处理的工具库.很多小伙伴在入 ...

  2. 在OpenCV中基于深度学习的边缘检测

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:AI算法与图像处理 导读 分析了Canny的优劣,并给出 ...

  3. 基于深度学习OpenCV与python进行字符识别

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 当我们在处理图像数据集时,总是会想有没有什么办法以简单的文本格式检 ...

  4. python opencv 实现基于深度学习的超分辨率处理

    s超分辨率(super-resolution)的通俗解释就是:将低分辨率的图像通过算法转换成高分辨率图像. 通常的超分辨率分两种:SISR和VSR.前者叫做单图像超分辨率,后者叫做视频超分辨率.我们通 ...

  5. 基于深度学习Superpoint 的Python图像全景拼接

    pip install opencv-python==3.4.2.16 pip install opencv-contrib-python==3.4.2.16 参考 https://github.co ...

  6. python dlib caffe人脸相似度_基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【一】如何配置caffe属性表...

    前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...

  7. opencv交通标志识别_教你从零开始做一个基于深度学习的交通标志识别系统

    教你从零开始做一个基于深度学习的交通标志识别系统 基于Yolo v3的交通标志识别系统及源码 自动驾驶之--交通标志识别 在本文章你可以学习到如何训练自己采集的数据集,生成模型,并用yolo v3算法 ...

  8. 深度学习 + OpenCV,Python实现实时视频目标检测

    选自PyimageSearch 机器之心编译 参与:路雪.李泽南 使用 OpenCV 和 Python 对实时视频流进行深度学习目标检测是非常简单的,我们只需要组合一些合适的代码,接入实时视频,随后加 ...

  9. 基于深度学习的人脸检测和关键点检测推理实践(OpenCV实现,含代码)

    目录 一.任务概述 二.环境准备 三.实现步骤 3.1 Python推理 3.2 C++推理 3.2.1 环境准备 3.2.2 推理 3.3 Java推理 一.任务概述 最近项目中大量场景需要用到人脸 ...

最新文章

  1. 使用git命令上传本地文件到GitHub上
  2. 交叉熵损失(Cross Entropy Loss)计算过程
  3. 9月9日项目群管理活动讨论
  4. 下的生产环境was重新启动不同意,怎么做?
  5. 【AOP 面向切面编程】AOP 简介 ( AspectJ 简介 | AspectJ 下载 )
  6. 软件工程实训有必要吗_软件工程实训报告的总结.docx
  7. 后台服务器控件点击跳转另一页面显示本页面
  8. Integer’s Power HDU - 3208(容斥原理)
  9. CuteEditor—Html在线编辑器的领航者,超强的asp.net编辑器控件
  10. 手风琴案例jquery写法
  11. html整合vue elementui,vue2.0结合Element-ui实战案例
  12. 检测客户端是否安装 Silverlight 插件和判断IE是否安装或支持Silverlight(限IE)
  13. 解决Mysql 主从或主主报1032错误
  14. 联想微型计算机b320,“蜗居”必备! 联想B320一体电脑评测
  15. 高校数据中心有哪些特点,目前主要存在哪些问题?
  16. P2071 座位安排(二分图最大匹配)
  17. iOS 切换到后台任务执行
  18. Android-分享
  19. 百度智能云-创建人脸识别应用
  20. MySQL 查询树表某个根节点的子树

热门文章

  1. 微服务系列之ZooKeeper注册中心和Nacos注册中心Nacos和Zookeeper对比
  2. ecshop nginx php-fpm,ecshop在nginx下配置常见问题
  3. c if语句多个条件判断顺序_Java中的流程控制语句 (基础篇四)
  4. 计算机学业水平考试答题卡,高一年级期末信息技术考试(含答题卡)
  5. HTML转义字符大全<转>
  6. js中for循环调用回调函数,一直循环最后一个
  7. mysql导出数据意义_11、mysql导出数据
  8. java编译器代码检查_Java编译器可以优化此代码吗?
  9. android 获取对话框对象,Android 基本Dialog和自定义Dialog
  10. php数字从大到小生成,php输入几个数从大到小排序的案例