基于Python批量去水印优化批量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批量去水印

这里只给出了新加的代码,需要用到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考研中实现自己的梦想。 选择这个专业是因为热爱,热爱可抵岁月漫长。众所周知统计学在计算机、金融领域十分受欢迎,但是我学了这么多发现我并不感兴趣,以后还是想做多媒体数据挖掘方向,将专业知识运用在传媒或信息传播领域。 我的导师也是一名非常优秀的老师,我特别喜欢她。双向奔赴的爱有多么美好😘 希望大家都能考上理想的学校,我们都有美好的未来。

经验分享 程序员 微信小程序 职场和发展