一个功能强大、易于使用的图片水印去除工具,支持自动检测水印区域并进行智能修复。
- 🤖 自动检测水印 - 智能识别图片中的水印区域
- ✋ 手动指定区域 - 精确控制要处理的区域
- 🎭 掩码模式 - 支持自定义掩码图片
- 📁 批量处理 - 一次处理多张图片
- 🎨 多种算法 - 提供Telea和Navier-Stokes两种修复算法
- 🌐 双界面 - 支持命令行和Web图形界面
- 🚀 高性能 - 基于OpenCV,处理速度快
- Python 3.7+
- pip
pip install -r requirements.txt启动Web应用:
streamlit run web_app.py然后在浏览器中访问显示的URL(通常是 http://localhost:8501)
python watermark_remover.py input.jpgpython watermark_remover.py input.jpg -o output.jpgpython watermark_remover.py input.jpg -m mask.png# 格式: --manual X Y WIDTH HEIGHT
python watermark_remover.py input.jpg --manual 100 50 200 100python watermark_remover.py -b ./images -od ./outputpython watermark_remover.py input.jpg --method inpaint_ns --radius 5positional arguments:
input 输入图片路径或目录
optional arguments:
-h, --help 显示帮助信息
-o, --output OUTPUT 输出图片路径
-m, --mask MASK 水印掩码图片路径
--method {inpaint_ns,inpaint_telea}
修复算法 (默认: inpaint_telea)
--radius RADIUS 修复半径 (默认: 3)
--no-auto-detect 禁用自动检测(需要提供掩码)
--manual X Y W H 手动指定水印区域: x y width height
-b, --batch BATCH 批量处理目录
-od, --output-dir OUTPUT_DIR
批量处理输出目录
- 基于快速行进方法(Fast Marching Method)
- 处理速度快
- 效果自然
- 适合大多数场景
- 基于流体动力学
- 修复效果更加平滑
- 处理速度较慢
- 适合需要高质量修复的场景
- 小半径 (1-3):适合小型水印或精细修复
- 中等半径 (3-7):适合常规大小的水印
- 大半径 (8-20):适合大型水印或需要大范围修复
python watermark_remover.py photo.jpg工具会自动检测并去除水印,结果保存为 photo_no_watermark.jpg
如果你知道水印在图片右下角,位置是(500, 400),大小是200x50:
python watermark_remover.py photo.jpg --manual 500 400 200 50如果你有一个精确的掩码图片(白色表示水印区域):
python watermark_remover.py photo.jpg -m watermark_mask.pngpython watermark_remover.py -b ./vacation_photos -od ./cleaned_photos --radius 5- 拖拽上传图片
- 选择处理模式(自动/手动/掩码)
- 实时预览处理结果
- 一键下载处理后的图片
- 同时上传多张图片
- 批量应用相同的处理参数
- 显示处理进度
- 分别下载每张处理后的图片
- 侧边栏实时调整算法和半径
- 立即看到参数变化的效果
-
水印检测效果不佳?
- 尝试调整修复半径
- 使用手动模式精确指定区域
- 使用图像编辑软件创建精确的掩码
-
如何获得最佳效果?
- 对于简单背景:使用自动检测 + 小半径
- 对于复杂背景:使用手动模式 + 中等半径
- 对于大型水印:使用较大的修复半径
-
批量处理建议
- 先用单张图片测试参数
- 确认效果满意后再批量处理
- 建议保留原始图片备份
本工具使用计算机视觉中的图像修复(Image Inpainting)技术:
-
水印检测:
- 分析图像的亮度、色彩分布
- 使用边缘检测识别文字轮廓
- 结合多种方法定位水印区域
-
图像修复:
- 分析水印周围的像素信息
- 使用插值算法填充水印区域
- 保持修复区域与周围的自然过渡
- OpenCV: 图像处理和修复
- NumPy: 数值计算
- Pillow: 图像格式处理
- Streamlit: Web界面
-
法律合规
- 请确保你有合法权利去除图片水印
- 不要侵犯他人的版权和知识产权
- 本工具仅供学习和合法用途
-
效果限制
- 复杂背景上的水印可能难以完全去除
- 大面积水印的修复效果可能不够理想
- 建议在原图质量较好的情况下使用
-
性能考虑
- 大尺寸图片处理时间较长
- 批量处理时建议控制单次数量
- 较大的修复半径会增加处理时间
解决方案:
# 尝试安装opencv-python-headless
pip install opencv-python-headless解决方案:
# 确保安装了所有依赖
pip install -r requirements.txt
# 检查Streamlit版本
streamlit --version解决方案:
- 尝试不同的算法(Telea vs Navier-Stokes)
- 调整修复半径
- 使用手动模式精确指定区域
- 尝试使用图像编辑软件创建更精确的掩码
- ✨ 初始版本发布
- 🤖 支持自动水印检测
- ✋ 支持手动区域指定
- 🎭 支持自定义掩码
- 📁 支持批量处理
- 🌐 提供Web图形界面
- 💻 提供命令行工具
本项目仅供学习和研究使用。使用本工具时请遵守相关法律法规,尊重他人的知识产权。
欢迎提交Issue和Pull Request!
如有问题或建议,欢迎通过以下方式联系:
- 提交Issue
- 发送邮件
⭐ 如果这个工具对你有帮助,欢迎给个Star!