中国传媒大学2022硕士研究生录取名单终于出来了,根据我写的上一篇文章:基于批量OCR分析中传研究生录取名单
分析了一下,没想到我居然初试材料复试三个第一,然而感觉自己还是有很多不足之处和可以改进的地方。今天在中传研究生群里受到了一位国重大佬的启发,想到了可以用python批量去水印的方法去除中传研究生录取名单里的大logo,这样可以使OCR识别效果更准确。
- 首先了解logo水印类型
logo几乎是一个颜色,整体RGB值在一定范围内,可以将该水印区域的RGB值变成白色,能够增强OCR识别的精确度。 - 获取logo的RGB值
很多软件都能识别RGB值,这里我选择常用的PS工具,点击吸管工具-吸取logo区域-设置前景色,就能找到logo的RGB大致范围
这里的RGB是波动的,但我们只需要看R+G+B的值大致范围,比如说这里大致都在300以上,可以令RGB值之和大于300的都变成白色(如这里[202,172,36]变成[255,255,255]) - 用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.size
for pos in product(range(width), range(height)):
if sum(img.getpixel(pos)[:3]) > 300:
img.putpixel(pos, (255, 255, 255))
#转化为二进制传输到百度api
img_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识别。(这里实时二进制传输可能会出现问题,重试一遍即可)
- 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 <- i
fit<-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 <- i
data3 <- rbind(data3,data2)
}
}
write.csv(data3, file="D:/2022拟录取名单.csv",row.names = FALSE)
使用了try函数,如果合并失败,说明第一行没有识别出来,需要重新读取skip=0(默认)
- 最终的总录取名单
可以看到识别非常精准,说明批量去水印能显著改善批量OCR的质量,但是程序运行时间也相应的变长了。所以如果只是做正则匹配的话没必要那么精确,使用我上一篇文章的方法近似处理也许是更高效的选择。最终得到的总录取名单见我发的:中国传媒大学2022硕士研究生录取名单电子版(一志愿)。
写在最后,特别感谢自己这么长时间来的努力,感谢那个积极治疗、乐观生活的自我。虽然考研期间总是在生病,也遇到了很多坎坷,但依然能够在卷王之卷的2022考研中实现自己的梦想。
选择这个专业是因为热爱,热爱可抵岁月漫长。众所周知统计学在计算机、金融领域十分受欢迎,但是我学了这么多发现我并不感兴趣,以后还是想做多媒体数据挖掘方向,将专业知识运用在传媒或信息传播领域。
我的导师也是一名非常优秀的老师,我特别喜欢她。双向奔赴的爱有多么美好😘
希望大家都能考上理想的学校,我们都有美好的未来。