如果您觉得这个工具有用,请给我一个星星支持吧!🌟
求求留个星星呗🥺🌟
一个功能强大且用户友好的工具,用于从 PDF 和 Word 文档中移除水印。该应用程序提供快速移除和深度移除模式,可针对各种水印类型确保最佳效果。
我已经放出了一个可直接运行程序在Release,请确保poppler可以在您的系统里运行。
- 快速移除: 快速从 PDF 文件中移除基于层的水印。
- 深度移除: 结合高级图像处理技术,移除文本和图像类型的水印。
- 支持 Word 文件: 移除
.docx
文件中的水印。 - 批量处理: 一次加载多个文件并批量处理。
- 可定制模式: 提供“快速移除”和“深度移除”两种模式选择。
- 进度跟踪: 提供可视化进度条和预计完成时间。
- 跨平台支持: 支持 Windows、macOS 和 Linux。
确保您已安装 Python 3.9 或更高版本。此外,请安装 requirements.txt
中列出的依赖项。
-
克隆此代码仓库:
git clone https://github.com/yourusername/watermark-remover.git cd watermark-remover
-
安装依赖项:
pip install -r requirements.txt
-
安装 Poppler 以支持 PDF 处理:
- macOS:
brew install poppler
- Ubuntu:
sudo apt-get install poppler-utils
- Windows:
从 Poppler for Windows 下载 Poppler 二进制文件,并将
bin
文件夹添加到 PATH 环境变量。
- macOS:
- 启动工具:
python prod.py
- 选择一个输出文件夹用于存储处理后的文件。
- 从文件夹中加载要处理的文件。
- 选择移除模式:快速移除 或 深度移除。
- 选择需要处理的文件并点击 执行。
- 您可以在代码中直接调用
removerPdf.py
和removerWord.py
中的函数进行处理。
注意:我在注释中添加了一些颜色和 HSV 预设,此方法可以保证移除具有特定颜色的水印;可以尝试调整这些值进行测试。
这两个函数用于检测图像中的黑色或近黑色文本(或水印)。可以通过调整阈值来适应不同类型的水印。
该函数使用 RGB 色彩空间检测图像中的黑色或近黑色像素。
-
RGB 阈值判断:
- 函数判断像素的三个通道(红、绿、蓝)的强度值是否均小于
140
。 - 满足条件的像素被认为是“深色”,可能代表文本或水印内容。
- 函数判断像素的三个通道(红、绿、蓝)的强度值是否均小于
-
适配水印:
- 提高阈值(
140 → 更高
): 用于检测浅灰色或较淡的黑色文本。 - 降低阈值(
140 → 更低
): 更专注于检测纯黑色像素,排除较浅的标记。
- 提高阈值(
-
示例用例:
- 适用于检测纯黑色或灰色的文本水印。
def is_text_color_rgb(img_array):
# 使用 RGB 色彩空间识别黑色或近黑色像素
mask = (
(img_array[:, :, 0] < 140) & # 红色通道阈值
(img_array[:, :, 1] < 140) & # 绿色通道阈值
(img_array[:, :, 2] < 140) # 蓝色通道阈值
)
return mask
该函数使用 HSV 色彩空间检测图像中类似黑色或深色的区域,能够更好地应对光照和颜色变化。
1. HSV 转换:
- 将图像转换为 HSV 色彩空间。
- 忽略色调(Hue, H),因为黑色不依赖特定颜色,仅分析饱和度(Saturation, S)和亮度(Value, V)。
2. 阈值判断:
- 饱和度(
S < 40
):确保该区域不含丰富的颜色(低饱和度意味着灰色或黑色)。 - 亮度(
V < 160
):确保该区域是深色(较低的值表示更暗的像素)。
3. 适配水印:
- 提高饱和度阈值(
S < 40 → 更高
):包含更多带色彩的水印。 - 提高亮度阈值(
V < 160 → 更高
):包含更浅的文本或水印。
4. 示例用例:
- 适用于检测浅色、带色彩的深色水印。
def is_text_color_hsv(img_array):
# 将 RGB 图像转换为 HSV
hsv_img = cv2.cvtColor(img_array, cv2.COLOR_RGB2HSV)
# 使用 HSV 色彩空间识别深色或黑色区域
mask = (hsv_img[:, :, 1] < 40) & (hsv_img[:, :, 2] < 160) # 饱和度和亮度阈值
return mask
- prod.py: 主图形界面应用程序文件。
- removerPdf.py: 用于处理和移除 PDF 文件水印的函数。
- removerWord.py: 用于处理和移除 Word 文件水印的函数。
- requirements.txt: 列出了所需的 Python 库。
工具依赖以下 Python 库:
PyQt5==5.15.9
pikepdf==6.2.6
PyMuPDF==1.21.1
pdf2image==1.16.3
Pillow==9.4.0
opencv-python-headless==4.8.0.76
scikit-image==0.19.3
PyPDF2==3.0.1
使用以下命令安装这些依赖项:
pip install -r requirements.txt
- 处理较大的 PDF 文件时可能会消耗大量内存。工具会将中间处理结果保存到磁盘以缓解内存压力。
- 在深度移除模式下,GUI 可能会变得不太响应。
特别感谢以下库和工具的开发者和维护者,这些开源项目为本工具的开发提供了强大的支持:
- PyQt5: 用于创建现代化用户界面的强大工具。
- PyMuPDF: 提供了强大的 PDF 文档操作功能。
- pdf2image: 实现无缝的 PDF 到图像转换。
- NumPy: 用于高效的数组操作和数学运算。
- scikit-image: 提供了高级图像处理能力。
- Pillow: 用于多功能的图像操作。
- python-docx: 用于处理 Word 文档。
- Poppler: 用于 PDF 渲染和转换。
- pikepdf: 用于快速水印移除处理
您的辛勤付出不仅使本项目得以实现,还帮助全球开发者创造了无数创新的解决方案。
感谢您对开源社区的无价贡献!❤️
本项目基于 MIT 许可证开源。详情请见 LICENSE