当前位置: 首页 > news >正文

Python Opencv实践 - 入门使用Tesseract识别图片中的文字

        做车牌识别项目前试一试tesseract识别中文。tesseract的安装使用请参考:

Python OCR工具pytesseract详解 - 知乎pytesseract是基于Python的OCR工具, 底层使用的是Google的Tesseract-OCR 引擎,支持识别图片中的文字,支持jpeg, png, gif, bmp, tiff等图片格式。本文介绍如何使用pytesseract 实现图片文字识别。 引言OCR(Opti…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/448253254        

import pytesseract as tst
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt#参考资料
#https://zhuanlan.zhihu.com/p/448253254original_img = cv.imread("../../SampleImages/chineseCharacters.jpg", cv.IMREAD_COLOR)
#图片转换为灰度图
img = cv.cvtColor(original_img, cv.COLOR_BGR2GRAY)
#二值化
ret,img = cv.threshold(img, 160, 255, cv.THRESH_BINARY)
plt.imshow(img, cmap='gray')
imgH,imgW = img.shape
print(imgH)
print(imgW)#显示支持的语言列表
print(tst.get_languages(config=''))
#使用image_to_string将图片中的文字转换出来
print(tst.image_to_string(img, lang='chi_sim'))#使用image_to_boxes返回识别的字符及边框
boxes = tst.image_to_boxes(img, lang='chi_sim')
print(boxes)
#返回值:
# 字符 左下角X 左下角Y 右上角X 右上角Y 
# 例子: 稳 116 616 268 690 0
#绘制边框
#注意,opencv的坐标系以左上角为原点,boxes中的参数是以左下角为原点
for box in boxes.splitlines():elements = box.split()print(elements)x1,y1,x2,y2 = int(elements[1]), int(elements[2]), int(elements[3]), int(elements[4])#转换到opencv坐标系charHeight = y2 - y1y1 = imgH - y1 - charHeighty2 = imgH - y2 + charHeightprint("Opencv character position:" + str(x1) + ' ' + str(y1)  + ' '  + str(x2)  + ' '  + str(y2))cv.rectangle(original_img, (x1, y1), (x2, y2), (0,255,0), 2)
plt.imshow(original_img[:,:,::-1])

        image_to_boxes方法返回的坐标是以左下角为原点的,可以从打印中印证这一点。

http://www.lryc.cn/news/205831.html

相关文章:

  • TCP通信实战案例-即时通信
  • 【数据结构初阶】算法的时间复杂度和空间复杂度
  • git log 命令详解
  • docker运行elastic和kibana,并使用密码连接
  • 前端html生成PDF
  • 通信算法之190: 频谱频移fftshift
  • 强化学习代码实战(3) --- 寻找真我
  • SA+ST表维护height+单调队列维护:CF1073G
  • Java中JVM、JRE和JDK三者有什么区别和联系?
  • 秋季期中考复现xj
  • 【代码随想录】算法训练营 第十四天 第六章 二叉树 Part 1
  • 【访问控制】—>《熟练使用ACL进行上网行为管理》
  • MySQL外键,表与表的关系,多表查询,Navicat软件
  • Linux系统镜像备忘
  • Docker容器端口在主机的映射
  • Spring Boot中RedisTemplate的使用
  • GSCoolink GSV6183 带嵌入式MCU的MIPI D-PHY 转 DP/eDP
  • Linux文件系统 struct dentry 结构体解析
  • C++——vector
  • html5语义化标签
  • SQL Server批量删除数据库中的表
  • 使用SecScanC2构建P2P去中心化网络实现反溯源
  • 【API篇】七、Flink窗口
  • 软件测试面试1000问(含文档)
  • 进阶课4——随机森林
  • 【Docker】Dockerfile使用技巧
  • 一招解决“请在微信客户端中打开链接”
  • Python循环语句(一)
  • 期中考核复现
  • 基于XML的Web服务Java接口(JAX-WS)、Jakarta XML Web Services Eclipse 实现