• Python 图片处理


    Step1

    提取PDF中的图片,并另存

    Step2

    去除灰色纸张背景

    1. import PyPDF2
    2. from PIL import ImageEnhance,Image,ImageFilter
    3. import cv2
    4. import numpy as np
    5. from skimage.filters import unsharp_mask
    6. from skimage.filters import gaussian
    7. from skimage.restoration import denoise_tv_chambolle
    8. local = './'
    9. pdf_file = open(local+'001.pdf', 'rb')
    10. pdf_reader = PyPDF2.PdfReader(pdf_file)
    11. num_pages = len(pdf_reader.pages)
    12. print("num : "+str(num_pages))
    13. pic_n=0
    14. # 遍历每一页
    15. for page_num in range(num_pages):
    16. # 获取当前页对象
    17. page_obj = pdf_reader.pages[page_num]
    18. # 获取当前页中的所有对象
    19. page_objs = page_obj['/Resources']['/XObject'].get_object()
    20. # 遍历每个对象
    21. for obj_name in page_objs:
    22. # 判断对象是否为图片
    23. if page_objs[obj_name]['/Subtype'] == '/Image':
    24. # 获取图片对象
    25. img_obj = page_objs[obj_name]
    26. # 获取图片数据
    27. img_data = img_obj.get_data()
    28. # 将图片数据保存为文件
    29. with open(local+"/99_tmp.jpg", 'wb') as img_file:
    30. img_file.write(img_data)
    31. #####################################################################################
    32. # 图片处理
    33. image = Image.open(local+"/99_tmp.jpg")
    34. #饱和度
    35. enhancer = ImageEnhance.Color(image)
    36. C_image = enhancer.enhance(0.001)
    37. C_image.save("./0_tmp.jpg")
    38. img = cv2.imread('./0_tmp.jpg')
    39. # 对每个像素进行对比度调整 alpha=对比度 beta=亮度
    40. img_contrast = cv2.convertScaleAbs(img, alpha=1.4, beta=0)
    41. ####################################################################################
    42. pnum=str(page_num).zfill(4)
    43. pic_str=str(pic_n).zfill(4)
    44. img_path ="./image_heibai/"+ pic_str + "_" +"page_"+pnum + '.jpg'
    45. cv2.imwrite(img_path,img_contrast)
    46. print("image : "+img_path)
    47. pic_n=pic_n+1

    Step3 

    去除黑色边框

    Step4

    去除阴影部分,字清晰

  • 相关阅读:
    前端性能优化:网站性能优化
    Java dom4j类简介说明
    【zeriotier】win10安装zeriotier的辛酸泪
    用动图详细讲解——栈
    Vdue之模版语法&指令&过滤器&计算属性&监听属性
    从运维到运维大神,只需要一个正确的选择
    Compose中的Text组件
    FL Studio21水果体验尝鲜版音乐宿主程序FL2023
    中文小样本NER模型方法总结和实战
    手写 Vue2 系列 之 编译器
  • 原文地址:https://blog.csdn.net/guiyuan_yelang/article/details/132773201