中国传媒大学2022硕士研究生录取名单终于出来了,根据我写的上一篇文章:基于批量OCR分析中传研究生录取名单
分析了一下,没想到我居然初试材料复试三个第一,然而感觉自己还是有很多不足之处和可以改进的地方。今天在中传研究生群里受到了一位国重大佬的启发,想到了可以用python批量去水印的方法去除中传研究生录取名单里的大logo,这样可以使OCR识别效果更准确。

  1. 首先了解logo水印类型

    logo几乎是一个颜色,整体RGB值在一定范围内,可以将该水印区域的RGB值变成白色,能够增强OCR识别的精确度。
  2. 获取logo的RGB值
    很多软件都能识别RGB值,这里我选择常用的PS工具,点击吸管工具-吸取logo区域-设置前景色,就能找到logo的RGB大致范围
    这里的RGB是波动的,但我们只需要看R+G+B的值大致范围,比如说这里大致都在300以上,可以令RGB值之和大于300的都变成白色(如这里[202,172,36]变成[255,255,255])
  3. 用Python批量去水印
#这里只写出新加的代码
from itertools import product
from PIL import Image
from io import BytesIO
#其余代码见我写的上一篇文章
#这里只写了新加的循环体里的内容filePath1 = filePath + "\\yan (" + str(i) +").png"#需要先去水印img = Image.open(filePath1)width, height = img.sizefor pos in product(range(width), range(height)):if sum(img.getpixel(pos)[:3]) > 300:img.putpixel(pos, (255, 255, 255))#转化为二进制传输到百度apiimg_bytes = BytesIO()img.save(img_bytes, format='png')img_bytes = img_bytes.getvalue()table = aipOcr.tableRecognitionAsync(img_bytes)# 调用表格识别模块识别图片

这里只给出了新加的代码,需要用到PIL库的Image进行图像处理,io的BytesIO将PIL图形转换成二进制进行网络传输(百度api仅支持二进制传输),使RGB值之和大于300的变成白色,方便OCR识别。(这里实时二进制传输可能会出现问题,重试一遍即可)

  1. R语言部分代码优化
    在上一篇文章中R语言合并的部分可能会出现有的表格第一行为空的情况,我对之前的R语言代码进行了如下改进:
library(readxl)
# 设置工作空间
setwd('D:/360极速浏览器下载/2022拟录取名单/')
# 读取该工作空间下的所有文件名
filenames <- dir()
# 通过正则,获取所有xls结尾的文件名
filenames2 <- grep('.xls', filenames, value = TRUE)
# 初始化数据框,用于后面的数据合并
data3 <- data.frame()
#通过循环完成数据合并
for (i in filenames2){# 构造数据路径path <- paste0('D:/360极速浏览器下载/2022拟录取名单/',i)# 读取并合并数据data2 <- read_xls(path = path,sheet='body',skip=1,col_names = TRUE)data2$index <- ifit<-try(data3 <- rbind(data3,data2),silent=TRUE)if('try-error' %in% class(fit)){data2 <- read_xls(path = path,sheet='body',col_names = TRUE)data2$index <- idata3 <- rbind(data3,data2)}
}
write.csv(data3, file="D:/2022拟录取名单.csv",row.names = FALSE)

使用了try函数,如果合并失败,说明第一行没有识别出来,需要重新读取skip=0(默认)

  1. 最终的总录取名单

    可以看到识别非常精准,说明批量去水印能显著改善批量OCR的质量,但是程序运行时间也相应的变长了。所以如果只是做正则匹配的话没必要那么精确,使用我上一篇文章的方法近似处理也许是更高效的选择。最终得到的总录取名单见我发的:中国传媒大学2022硕士研究生录取名单电子版(一志愿)。


写在最后,特别感谢自己这么长时间来的努力,感谢那个积极治疗、乐观生活的自我。虽然考研期间总是在生病,也遇到了很多坎坷,但依然能够在卷王之卷的2022考研中实现自己的梦想。

选择这个专业是因为热爱,热爱可抵岁月漫长。众所周知统计学在计算机、金融领域十分受欢迎,但是我学了这么多发现我并不感兴趣,以后还是想做多媒体数据挖掘方向,将专业知识运用在传媒或信息传播领域。
我的导师也是一名非常优秀的老师,我特别喜欢她。双向奔赴的爱有多么美好

基于Python批量去水印优化批量OCR的质量相关推荐

  1. 【优秀课设】基于Python的百度API的OCR名片识别【含完整API账户】

    基于Python的百度API的OCR名片识别[含完整API账户] API账户:(AK及SK) client_id ='WiXDt5e70NI5w0qSeoUBZClZ' client_secret = ...

  2. 基于Python贝叶斯优化XGBoost算法调参报错“TypeError: ‘float‘ object is not subscriptable”

    基于Python贝叶斯优化XGBoost算法调参运行情况如下: iter target colsam- gamma max_depth min_ch- subsample 1 0.9398 0.804 ...

  3. python 按需加载_基于python的opcode优化和模块按需加载机制研究(学习与个人思路)(原创)...

    基于python的opcode优化和模块按需加载机制研究(学习与思考) 姓名:XXX 学校信息:XXX 主用编程语言:python3.5 文档转换为PDF有些图片无法完全显示,请移步我的博客查看 完成 ...

  4. python 高精度时间_如何基于Python代码实现高精度免费OCR工具

    近期Github开源了一款基于Python开发.名为Textshot的截图工具,刚开源不到半个月已经500+Star. 这两天抽空看了一下Textshot的源码,的确是一个值得介绍的项目. 相对于大多 ...

  5. 【办公自动化】基于Python开发的PDF批量转换-合并应用程序

    场景描述: 日常处理文件时,经常遇到将word批量转换成pdf文件,以及合并多个pdf文件的需求. 那么问题来了 1.市面上的office程序只能支持单个文件转换,批量与合并是收费的. 2.而网页上的 ...

  6. 基于Python的堆优化单源最短路径

    本文主要是本人对堆优化单源最短路径中堆的一些理解,如有需要还会发布对单源最短路径的解释.参考书目:Algorithms Design Techniques and Analysis[沙特]M.H.Al ...

  7. lightinthebox火车头数据采集器(20120812更新) 使用火车头接口技术一键批量采集 批量发布 批量去水印 接口技术

    lightintebox 如何 实现 数据采集,lightinthebox中如何实现以下功能:(欢迎广大网友交流 qq:158393237 旺旺:  q459255119) 1  找供应商采购谈判 给 ...

  8. Python实践11:基于PIL对图片批量去水印

    文件夹中的含水印的图片: 查看水印的rgb值: 代码如下: ''' Author: error: git config user.name && git config user.ema ...

  9. python读取遥感 dat_基于python批量处理dat文件及科学计算方法详解

    摘要:主要介绍一些python的文件读取功能,文件内容修改,文件名后缀更改等操作. 批处理文件功能 import os path1 = 'C:\\Users\\awake_ljw\\Documents ...

最新文章

  1. 系统crash无法启动 tpm error / could not read size 0x8000000e
  2. java dagger2_java – Dagger2不生成Daggercomponent类
  3. 关于webpack的使用
  4. 渐进式遗传组卷算法(大规模题库,实际可用的算法) 智能组卷系统
  5. 【S操作】我的云存储工具选择,供您参考——总结云存储云办公云笔记工具
  6. C++常量指针this
  7. 如何证明在素数p和2p之间存在另一个素数呢?简单却不完备的证明
  8. CodeForces - 1353E K-periodic Garland(思维+dp)
  9. DataTable RowFilter 过滤数据
  10. winform绑定多张图片
  11. c语言字符笛卡尔积,JavaScript笛卡尔积超简单实现算法示例
  12. 摩根溪创始人:特斯拉资产负债表有8%是比特币
  13. 【scala】 scala xml 处理(⑨)
  14. python根据服务器sn号查询DELL服务器型号、出厂时间、过保时间
  15. 调手表(蓝桥杯2018年B组真题)
  16. 高中必备学习软件_学霸必备app有哪些高中生必备app排行
  17. 电脑如何录制屏幕?windows录屏软件哪个好?
  18. java后端和web_从java和web角度分析前端好还是后端好
  19. 游戏市场阴影下的游戏手机厂商,和他们无法触碰的未来
  20. Pixhawk RPi CM4 Baseboard 树莓派CM4安装Ubuntu20.04 server 配置ros mavros mavsdk

热门文章

  1. python初体验-布尔类型转换
  2. Chain of Responsibility 模式-----推卸责任模式
  3. 什么是bgp服务器,有哪些优势?
  4. 映射到外网华为云_Windows 如何使用端口映射
  5. u盘乱码怎么办?看他怎么恢复的(不花一分钱)
  6. 最新!互联网大厂各职级薪资对应关系图(2020年初)
  7. 用java输出m列n行的矩形_C | 输出一个n行m列矩形方阵 发现的几个问题
  8. 时间范围内按某个刻度取各个刻度间的数据
  9. 全新同步整流IC助力SMPS应用更简易、更高效
  10. System.Security.SecurityException Failed to negotiate HTTPS connection with server.fiddler.network