python去除excel水印
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python去除excel水印相关的知识,希望对你有一定的参考价值。
通过使用Python可以去除Excel文档中的水印。首先,使用Python读取Excel文件,然后对单元格内容进行检查,确定存在水印,最后利用Python代码将水印去除。通过使用Python可以去除Excel文档中的水印。首先,使用Python读取Excel文件,然后对单元格内容进行检查,确定存在水印,最后利用Python代码将水印去除。 参考技术A 可以使用python中的openpyxl库中的remove_watermark函数去除excel水印。该函数可以检测到文档中的水印并将其删除,相比较之下更加快捷方便。 参考技术B 可以使用Python的openpyxl和xlsxwriter库,提供了一系列的API供用户操作excel表格,可以用来实现去除excel中水印的功能。两种Python基于OpenCV的固定位置半透明水印去除方案
1. 基于 inpaint 方法(网上的方法,处理质量较低)
- 算法理论:基于Telea在2004年提出的基于快速行进的修复算法(FMM算法),先处理待修复区域边缘上的像素点,然后层层向内推进,直到修复完所有的像素点
- 处理方式:由ui人员制作出黑底白色水印且相同位置的水印蒙版图(必须单通道灰度图),然后使用inpaint方法处理原始图像,具体使用时可把水印区放粗,这样处理效果会好点
# -*- coding: utf-8 -*- import cv2 src = cv2.imread(‘src.jpg‘) # 默认的彩色图(IMREAD_COLOR)方式读入原始图像 mask = cv2.imread(‘mask.jpg‘, cv2.IMREAD_GRAYSCALE) # 灰度图(IMREAD_GRAYSCALE)方式读入水印蒙版图像 # 参数:目标修复图像; 蒙版图(定位修复区域); 选取邻域半径; 修复算法(包括INPAINT_TELEA/INPAINT_NS, 前者算法效果较好) dst = cv2.inpaint(src, mask, 3, cv2.INPAINT_TELEA) cv2.imwrite(‘result.jpg‘, dst)
2. 估算alpha值,然后逆向运算
save = img.copy() #复制图像
src = img
alpha=51.0/255.0
for row in range(src.shape[0]):
for col in range(src.shape[1]):
if img_mask[row, col].all() !=0:
save[row, col]=(src[row, col]-alpha* img_mask[row, col])/(1-alpha)
以上是关于python去除excel水印的主要内容,如果未能解决你的问题,请参考以下文章