pytesseract:opencv预处理图片

一、目的

原始图片用pytesseract识别文字,精准度往往没达到预期。使用opencv处理后,提高识别精准度。处理方法有

a.图片转成白底黑字。

b.截取图片某固定区域。这个很重要,因为图片包含图标或其他形状图形,辨识导致错乱的。

二、opencv 处理

import cv2#加载图片
image = cv2.imread(filePath)#截取矩形区域
# 格式[y1: y2, x1: x2] , (x1,y1)矩形左上角,(x2,y2)矩形右下角.
image = image[180:550, 55:280]#灰度转换
GrayImage = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)#二值化   # cv2Type: int类型# 0. cv2.THRESH_BINARY# 表示阈值的二值化操作,大于阈值使用maxval表示,小于阈值使用0表示# # 1. cv2.THRESH_BINARY_INV# 表示阈值的二值化翻转操作,大于阈值的使用0表示,小于阈值的使用最大值表示# ret, thresh2 = cv2.threshold(GrayImage, 88, 255, cv2.THRESH_BINARY_INV)#cv2Threshold 阈值ret, thresh2 = cv2.threshold(GrayImage, cv2Threshold, 255, cv2Type)#ocr 辨识
# output_type=Output.DICT 将获取具体辨识数据,用于后期处理。
results = pytesseract.image_to_data(thresh2, output_type=Output.DICT, lang='eng')

写文字,画矩形

 for i in range(0, len(results["text"])):text = results["text"][i].strip()tmp_tl_x = results["left"][i]tmp_tl_y = results["top"][i]tmp_br_x = tmp_tl_x + results["width"][i]tmp_br_y = tmp_tl_y + results["height"][i]#写字cv2.putText(thresh2, text, (tmp_tl_x, tmp_tl_y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 255), 1)#画矩形cv2.rectangle(image, (tmp_tl_x, tmp_tl_y), (tmp_br_x, tmp_br_y), (0, 255, 255), 2)

参考:https://livezingy.com/pytesseract-image_to_data_locate_text/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/280488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编译安装Centos7.2+Apache2.4.25+PHP7.2.10+Mysql5.6.16

一、编译部署Apache2.4.251、环境准备#设置或停止防火墙: [rootlocalhost ~]# systemctl stop firewalld.service [rootlocalhost ~]# systemctl disable firewalld.service#关闭selinux: 临时关闭: [rootlocalhost ~]# setenforce 0永久关闭…

SDNU 1217 CD收藏——并查集

Description lmh平常爱听歌,所以买了很多的CD来收藏,但是因为平常整理不当,所以忘记了这些CD的歌手是谁。现在他想知道他到底收藏了多少位歌手的专辑,于是他想了一个办法,同时拿出两个CD来听,可以分辨出来是…

国际知名计算机视觉和机器学习软件开源平台OpenCV正式支持龙架构

前言介绍近期,OpenCV开源社区正式合入了对龙架构(LoongArch™)支持的代码,基于龙架构自主指令系统,优化后的OpenCV性能显著提升。OpenCV是一款跨平台的计算机视觉和机器学习软件平台,在计算机视觉领域广泛使…

优化器--牛顿法总结

---这里记录下一些关于牛顿法来作为优化器的个人笔记 :) 关于牛顿法,先不说其中的概念,来简单看一个例子? 不用计算器,如何手动开一个值的平方根,比如计算{sqrt(a) | a4 } ? 不用程序…

在命令提示符输出c语言代码_您可以在Windows命令提示符中更改输出缓冲区的大小吗?...

在命令提示符输出c语言代码If you are someone who loves using the Windows Command Prompt, you may have found yourself curious as to why the screen output buffer has such a ‘large’ default size. Can you change it to a smaller (or even larger) size? Today’…

django23:BS4/kindeditor上传图片

BS4 Beautiful Soup,Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式。 安装 pip3 install beautifulsoup4 使用 from bs4 import BeautifulSoup#html_doc为网页内容 soup Be…

设计模式——————观察者模式

工厂模式分为简单工厂,工厂和抽象工厂,三种工厂的实现是越来越复杂的。 观察者模式 本质上就是一种订阅/发布的模型,从逻辑上来说就是一对多的依赖关系。 什么意思呢?好比是一群守卫盯着一个囚犯,只要囚犯一有异动&…

SNMP简介

SNMP简介介绍SNMP的定义、目的、版本演进以及受益。 定义简单网络管理协议SNMP(Simple Network Management Protocol)是广泛应用于TCP/IP网络的网络管理标准协议。SNMP提供了一种通过运行网络管理软件的中心计算机(即网络管理工作站&#xff…

详解vue生命周期及每个阶段适合进行的操作

VUE生命周期的四个阶段 create 创建 -------- 创建vue实例并初始化mount 挂载 -------- 把vue实例和视图进行关联update 更新 ------- 监听数据与视图的变化destroy销毁 ------- 销毁实例生命周期 --- 钩子函数 vue为上面的4个大的阶段提供了一个可编程的接口,我们可…

.Net 7 新编译器 ILC 简析

楔子:这个新编译器的全称是ILCompiler。是之前CoreRT项目合并过来的,在.Net 7成熟,并且可以产业化应用。本质:ILC编译器的本质除了构建CLR的所拥有的主要功能,还包含了对LLVM这种意图取代GCC编译器的操作,对…

mac 防止 下载 睡眠_如何暂时防止Mac进入睡眠状态

mac 防止 下载 睡眠Let’s say you start a big download, then go to bed. When you wake up, you realize your Mac went to sleep before finishing its job. Isn’t there some way to stop this? 假设您开始进行大量下载,然后上床睡觉。 当您醒来时&#xff0…

ubuntu安装chrome driver

首先下载Chrome Driver(Firefox Driver的安装与该步骤相同) 链接: http://chromedriver.storage.googleapis.com/index.html 接下来在控制台(terminal)上操作一下红色字体的指令: Install Unzipsudo apt-ge…

深入理解Spring异常处理

宜信技术学院1.前言相信我们每个人在SpringMVC开发中,都遇到这样的问题:当我们的代码正常运行时,返回的数据是我们预期格式,比如json或xml形式,但是一旦出现了异常(比如:NPE或者数组越界等等&am…

基于React开发范式的思考:写在Lesx发布之际

例子:lesx-example webpack loader: lesx-loader 一些背景 现在前端框架已经呈现出React、Angular、Vue三足鼎立的局势,对于三者的对比以及技术选型的思考与争论也被讨论了非常多,比如知乎上的这个问题:react.js,angular.js,vue.j…

mac共享单个磁盘_如何与您的所有设备共享酒店的单个Wi-Fi连接

mac共享单个磁盘Many hotels still limit you to one or two Wi-Fi devices per room–a frustrating limitation, especially when traveling with someone else. Connection restrictions can apply anywhere you have to log into a Wi-Fi network via a portal instead of …

Python FastApi:快速建立docker容器/挂载共享文件夹/导入导出

一、目的 a.快速把原有fastapi代码部署到docker,让docker在server运行。 b.不涉及docker深入设置。 c.使用python第三方lib少或简单。 二、步骤 ps:请提前安装docker 1.新建Dockerfile,放入到项目根目录 a.Dockerfile没有后缀. b.准备好requireme…

PHP-FPM 与 Nginx 的通信机制总结

PHP-FPM 介绍 CGI 协议与 FastCGI 协议 每种动态语言( PHP,Python 等)的代码文件需要通过对应的解析器才能被服务器识别,而 CGI 协议就是用来使解释器与服务器可以互相通信。PHP 文件在服务器上的解析需要用到 PHP 解释器,再加上对…

Android——监听事件总结

各种监听事件 1.按钮 Button(1)点击监听btn_1.setOnClickListener(new View.OnClickListener() { (2)长按监听btn_1.setOnLongClickListener(new View.OnLongClickListener() { 2.单选框 RadioGroupradio_gp.setOnCheckedChangeLi…

ChatGPT 大智近妖,从宇宙人生到手搓光刻机,从哄女朋友到写年终总结我们聊得非常开心,反而让人越来越忧心...

都说 ChatGPT 要干掉程序员,清理搜索引擎,取代Stack Overflow,还能消灭人类,这些有些言过其实了。ChatGPT 的定位是一个人工智能助理,它说,它的主要目的是通过回答用户的问题,为用户提供帮助。在…