基于Python批量去水印优化批量OCR的质量

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

  1. 首先了解logo水印类型
    基于Python批量去水印优化批量OCR的质量
    logo几乎是一个颜色,整体RGB值在一定范围内,可以将该水印区域的RGB值变成白色,能够增强OCR识别的精确度。
  2. 获取logo的RGB值
    基于Python批量去水印优化批量OCR的质量
    这里的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.size
    for pos in product(range(width), range(height)):
            if sum(img.getpixel(pos)[:3]) > 300:
                    img.putpixel(pos, (255, 255, 255))

    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识别。(这里实时二进制传输可能会出现问题,重试一遍即可)

  1. R语言部分代码优化
    在上一篇文章中R语言合并的部分可能会出现有的表格第一行为空的情况,我对之前的R语言代码进行了如下改进:
library(readxl)

setwd('D:/360极速浏览器下载/2022拟录取名单/')

filenames  dir()

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
  fittry(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(默认)

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

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

基于Python批量去水印优化批量OCR的质量
选择这个专业是因为热爱, 热爱可抵岁月漫长。众所周知统计学在计算机、金融领域十分受欢迎,但是我学了这么多发现我并不感兴趣,以后还是想做多媒体数据挖掘方向,将专业知识运用在传媒或信息传播领域。
基于Python批量去水印优化批量OCR的质量
希望大家都能考上理想的学校,我们都有美好的未来。

Original: https://blog.csdn.net/qq_45702601/article/details/124183150
Author: 清洄KAKA
Title: 基于Python批量去水印优化批量OCR的质量

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/641767/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球