批量去水印技术原理(以我的衣橱为例,给老赵找找麻烦)

简介:

批量去水印是个邪恶的技术,以老赵的衣橱为例子就更邪恶了。之所以以衣橱为例子而不以时尚网为例子,是标题需要。实际上,时尚网的水印批量去除效果更佳。闲话少说,摆原理,上图片(代码就不上了)。

======================================

通过观察可以发现,如果以图片的右下角为基准,很多网站图片的水印位置是固定的,因此,可以通过以下步骤去除:

第一步:制定一张mask图片,这张图片标记了水印的位置。

mask图片可以用photoshop或其它工具做。我最初的想法是让程序智能提取,输入两张带有水印的图片,根据水印区域相似性来找到水印区。这个思路实现起来比较难,试了几个方法,都不理想。还是用photoshop扣掉非水印区域省心。

下面是我做的“衣橱”的mask图片,其中非白色的像素便是水印区:

mask2

第二步:对于要去水印的图片,根据mask图片,通过程序抠掉其中的水印区域。这一步可以省略,抠不抠都不影响最终结果。放在这里是为了把原理讲的更清晰些。经过第二步,我们得到了一张局部残缺的图片。

第三步:图片复原。图片复原是一种图像处理技术,英文叫Image Inpainting。原理很复杂,网上的论文大把抓,有兴趣的可以去看看。

我用的是OpenCV的图像复原函数。先看看OpenCV图像复原的演示,对这个技术有个直观认识。这是一张残缺的照片:

image

复原后的照片:

image

效果很棒。:P

我按上面思路写了一个 demo,拿老赵的衣橱做实验,结果如下:

image

换张图片试试:

image

再换张:

image

水印去掉了,复原后的图片,仔细看,还能看出痕迹。mask模板再制作精良点,选择更好的算法估计效果会好一些。

本文转自xiaotie博客园博客,原文链接http://www.cnblogs.com/xiaotie/archive/2009/12/19/1627669.html如需转载请自行联系原作者


xiaotie 集异璧实验室(GEBLAB)

相关文章
|
4月前
|
Java 应用服务中间件 开发者
Spring Boot 技术详解与应用实践
本文档旨在全面介绍 Spring Boot 这一广泛应用于现代企业级应用开发的框架。内容将涵盖 Spring Boot 的核心概念、核心特性、项目自动生成与结构解析、基础功能实现(如 RESTful API、数据访问)、配置管理以及最终的构建与部署。通过本文档,读者将能够理解 Spring Boot 如何简化 Spring 应用的初始搭建和开发过程,并掌握其基本使用方法。
361 2
|
5月前
|
传感器 机器学习/深度学习 算法
Java 大视界 -- Java 大数据在智能农业温室环境调控与作物生长模型构建中的应用(189)
本文探讨了Java大数据在智能农业温室环境调控与作物生长模型构建中的关键应用。通过高效采集、传输与处理温室环境数据,结合机器学习算法,实现温度、湿度、光照等参数的智能调控,提升作物产量与品质。同时,融合多源数据构建精准作物生长模型,助力农业智能化、精细化发展,推动农业现代化进程。
|
9月前
|
小程序 Java 关系型数据库
weixin030英语学习交流平台小程序+ssm(文档+源码)_kaic
本文介绍了英语学习交流平台小程序的开发全过程,包括系统分析、设计与实现。该小程序基于Java的SSM框架进行后端管理开发,使用MySQL作为数据库,并借助微信开发者工具确保系统稳定性。小程序设有管理员和用户两个角色,功能涵盖个人中心、每日打卡、学习计划、论坛交流等,具有操作简单、界面清晰、功能齐全的特点。通过技术可行性、经济可行性和操作可行性分析,证明了系统的实用性和高效性,为英语学习者提供了一个便捷的交流平台。
|
Web App开发
生活小技巧:Tampermonkey 脚本(刷课,刷题)
生活小技巧:Tampermonkey 脚本(刷课,刷题)
958 0
|
存储 关系型数据库 分布式数据库
内附原文|详解SIGMOD’24最佳论文:PolarDB破解多主架构经典难题
在今年的SIGMOD会议上,阿里云瑶池数据库团队的论文《PolarDB-MP: A Multi-Primary Cloud-Native Database via Disaggregated Shared Memory》获得了Industry Track Best Paper Award,这是中国企业独立完成的成果首次摘得SIGMOD最高奖。PolarDB-MP是基于分布式共享内存的多主云原生数据库,本文将介绍这篇论文的具体细节。
内附原文|详解SIGMOD’24最佳论文:PolarDB破解多主架构经典难题
|
Python Windows
moviepy:基于 ffmpeg 的视频处理模块
moviepy:基于 ffmpeg 的视频处理模块
480 0
|
前端开发 JavaScript 开发工具
前端开发最佳实践与工具推荐
【7月更文挑战第22天】前端开发是一个充满挑战和机遇的领域,掌握最佳实践和高效工具是提升开发效率、保证项目质量的关键。通过遵循版本控制、构建和部署、编写高质量代码、性能优化和安全性等最佳实践,并结合代码编辑工具、版本控制工具、包管理工具、构建工具、调试工具等实用工具,我们可以更好地完成前端开发任务,提升个人和团队的竞争力。
|
人工智能 自然语言处理 搜索推荐
|
安全 Go 开发者
Golang深入浅出之-Go语言模板(text/template):动态生成HTML
【4月更文挑战第25天】Go语言的`text/template`和`html/template`库提供动态HTML生成。本文介绍了模板基础,如基本语法和数据绑定,以及常见问题和易错点,如忘记转义、未初始化变量、复杂逻辑处理和错误处理。建议使用`html/template`防止XSS攻击,初始化数据结构,分离业务逻辑,并严谨处理错误。示例展示了条件判断和循环结构。通过遵循最佳实践,开发者能更安全、高效地生成HTML。
568 0
|
Linux API 开发工具
推荐一个刚开源很火的Github项目:system-design-101(系统设计图库)
推荐一个刚开源很火的Github项目:system-design-101(系统设计图库)
1139 0

热门文章

最新文章