基于Python批量去水印优化批量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批量去水印
这里只给出了新加的代码,需要用到PIL库的Image进行图像处理,io的BytesIO将PIL图形转换成二进制进行网络传输(百度api仅支持二进制传输),使RGB值之和大于300的变成白色,方便OCR识别。(这里实时二进制传输可能会出现问题,重试一遍即可)
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(默认)
写在最后,特别感谢自己这么长时间来的努力,感谢那个积极治疗、乐观生活的自我。虽然考研期间总是在生病,也遇到了很多坎坷,但依然能够在卷王之卷的2022考研中实现自己的梦想。 选择这个专业是因为热爱,热爱可抵岁月漫长。众所周知统计学在计算机、金融领域十分受欢迎,但是我学了这么多发现我并不感兴趣,以后还是想做多媒体数据挖掘方向,将专业知识运用在传媒或信息传播领域。 我的导师也是一名非常优秀的老师,我特别喜欢她。双向奔赴的爱有多么美好😘 希望大家都能考上理想的学校,我们都有美好的未来。