水印,数字水印,频域水印(隐形水印)很麻烦!用这个分分钟搞定!

水印,你在很多公司图片都会看到,里面都会加入图片都会有显式水印,或者半隐形水印。平常加水印,只要将两张图片色值混合就没问题了

import cv2
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
img  = cv2.imread("lena.jpg")
img= cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
wm = cv2.imread("cang_wang.png")
wm = cv2.resize(wm,(364,40))
# wm = 255-wm
img1 = cv2.resize(img,(600,600))
//圈定感兴趣区域
imgROI = img1[600-wm.shape[0]:600,600-wm.shape[1]:600]
//图片透明度混合
cv2.addWeighted(imgROI,0.5,wm,0.5,0,imgROI)
plt.figure(figsize=(11,11))
plt.imshow(img1)

这里引用到Opencv 图像叠加 添加水印

数字水印是怎样的?1、预处理隐藏信息首先将需要加密的图像进行转换为二值图像,其中只包含两个灰度级0和1。其中0对应黑色,1对应白色。在opencv中其实没有二值图像,我们可以将二值图像理解为特殊的灰度图像。由于需要将隐藏信息嵌入图片的第0位(每个像素点分出一个bit位来存储信息)所以被隐藏信息图像的最高灰度级必须为1,最低为0。

对图像进行二值化可以利用以下方法:

s_black = s[:,:]<128 # s为需要被隐藏的图片 s_black记录灰度值小于128的像素的位置s[s_black] = 0 # 将灰度值小于128的灰度值置为0s_white = s[:]>=128 # s_white记录灰度值大于128的像素的位置s[s_white] = 1 # 将灰度值大于128的灰度值置为1这样就得到被标记为0和1的矩阵

彩色图片色值0~255,我们可以借用RGB其中一个色值,然后转为二进制值,最后一位用来记录签名值。因为最后一位色值其实变化很小,用来记录二值化干扰非常小。

# 因为没有现成的二值图像,在此的s图像是一个包含黑色和白色的彩色图像,因此在这里需要阈值化处理
#这里水印图设置成原图大小,不然不能使用与或运算,如果有人知道抽取roi区域做与或运算的方法也可以告诉我
wm_2 = cv2.resize(wm,(img.shape[1],img.shape[0]))
plt.imshow(wm_2)
s_black = wm_2[:,:]<128
wm_2[s_black] = 1
s_white = wm_2[:]>=128
wm_2[s_white] = 0# r, c = img.shape
r = img.shape[0]
c = img.shape[1]# 构造提取原始图像高7位矩阵
t255 = np.ones((r, c, 3), dtype=np.uint8)*254# # 获取原始图像的高七位
demo_h7 = np.bitwise_and(img, t255)
# plt.imshow(demo_h7)# # 嵌入水印
demo_s_in = np.bitwise_or(demo_h7, wm_2)
# plt.imshow(cv2.hconcat([demo_h7,demo_s_in]))# 生成提取矩阵
t1 = np.ones((r, c, 3), dtype=np.uint8)
s_out = np.bitwise_and(demo_s_in, t1)
s_out_white = s_out[:]<1
s_out[s_out_white] = 255
# cv2.imshow("s_out", s_out)
plt.figure(figsize=(11,11))
plt.imshow(cv2.hconcat([demo_h7,demo_s_in,s_out]))

可以看出加了水印的图,其实和原图没有太大的差别。因为我本来水印图色值还是有拉伸的,直接转化为0,1两个数字后,再和原图或值合并。所以还原回来看水印的还原还是有区域无法正常显示。

数字水印的方式,其实抗干扰性非常之差,稍微进行

这里应用OpenCv图像处理——数字水印

频域水印所谓频域水印,首先需要了解傅里叶变换

import cv2
import numpy as np
import matplotlib.pyplot as pltimg = cv2.imread('lena.jpg',0) #直接读为灰度图像
img = cv2.resize(img,(300,300))wm = cv2.imread("cang_wang.png", 0)
wm = cv2.resize(wm,(200,50))
wm = 255-wm#快速傅里叶变换算法得到频率分布
f = np.fft.fft2(img)
#默认结果中心点位置在左上角,转移到中间
fshift = np.fft.fftshift(f)
#取绝对值:将复数变化成实数
#取对数的目的为了将数据变化到0-255
#fshift是复数,求绝对值结果才是振幅
s1 = np.log(np.abs(fshift))#求相位,相位和振幅是频域两个很重要的结果
#振幅只是记录图片的明暗,而相位才是记录图像的形状
s1_angle = np.angle(fshift)#将水印放入频域
fshift2 = fshift.copy()
fshift2[0:50, 0:200] += wm *50.0
fshift2[-50:, -200:] += cv2.flip(wm, -1) *50.0s2 = np.log(np.abs(fshift2))# 逆变换
f1shift2 = np.fft.ifftshift(fshift2)
img_back2 = np.fft.ifft2(f1shift2)
#出来的复数,无法显示,转成实数
img_back2 = np.abs(img_back2)f1shift = np.fft.ifftshift(fshift)
img_back = np.fft.ifft2(f1shift)
#出来的是复数,无法显示
img_back = np.abs(img_back)
plt.figure()
plt.imshow(img,'gray')
plt.figure()
plt.imshow(wm, 'gray')
plt.figure()
plt.imshow(s1,'gray')
plt.figure()
plt.imshow(s2,'gray')
plt.figure()
plt.imshow(img_back,'gray')plt.figure()
plt.imshow(img_back2,'gray')

原图


水印图


频域图


加水印后频域图


频域逆转换后图


频域加水印后逆转换后图


关于opencv使用傅里叶变换,可以参照一下这个文章OpenCV学习笔记-傅里叶变换
关于频域水印再受到变换后可能出现的问题,可以参照这篇文章有意思的数字盲水印的简单的实现

基本旋转平移、光暗调整等操作,不会对水印有太大影响,但是通过模糊算法后,水印会被刷除,但是锐化算法不会有太大影响。

 

源码有哦   记得加群:1136192749

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/28742.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是数字水印

经常有文章把数字签名和数字水印“傻傻分不清”&#xff0c;那今天就介绍一下数字水印。 一、数字水印技术原理 数字水印是一种信息隐藏技术&#xff0c;它利用人体感官的限制&#xff0c;将数字信号&#xff0c;如图像、文字、符号、数字等一切可以作为标记、标识的信息与原…

数字图像水印处理

数字图像水印处理 一个处理数字图像水印的系统&#xff0c;该系统可以实现添加可见水印&#xff0c;添加不可见水印&#xff0c;识别水印&#xff0c;提取可见水印&#xff0c;提取不可见水印&#xff0c;打开、保存图片等功能。(这里的水印识别指的是识别自己添加的水印) 添…

文心大模型3.5勇夺三个冠军领跑,中文完爆GPT-4!国际权威报告7项满分「全班第一」...

新智元报道 编辑&#xff1a;编辑部 【新智元导读】这场百模大战&#xff0c;究竟是谁胜出&#xff1f;国际权威IDC发布大模型技术报告中&#xff0c;文心大模型3.5拿下7个满分&#xff0c;三个绝对第一。 一觉醒来&#xff0c;好不热闹&#xff0c;Meta深夜投出重磅炸弹&…

文心一言APP来了

金磊 丰色 发自 凹非寺量子位 | 公众号 QbitAI 终于&#xff0c;正版百度文心一言APP上架苹果商店了&#xff01; &#xff08;此前百度因为盗版文心一言APP泛滥&#xff0c;还起诉过苹果公司及相关开发团队。&#xff09; 这般“新鲜出炉”的工具&#xff0c;我们当然要率先体…

文心一言APP国区可下载!免费体验120+玩法,PPT大纲Excel公式一键生成

点击关注公众号&#xff1a;互联网架构师&#xff0c;后台回复 2T获取2TB学习资源&#xff01; 上一篇&#xff1a;Alibaba开源内网高并发编程手册.pdf 终于&#xff0c;正版百度文心一言APP上架苹果商店了&#xff01; &#xff08;此前百度因为盗版文心一言APP泛滥&#xff0…

文心一言APP国区可下载,免费体验120+玩法,PPT大纲Excel公式一键生成

来源&#xff1a;量子位 | 公众号 QbitAI 终于&#xff0c;正版百度文心一言APP上架苹果商店了&#xff01; &#xff08;此前百度因为盗版文心一言APP泛滥&#xff0c;还起诉过苹果公司及相关开发团队。&#xff09; 这般“新鲜出炉”的工具&#xff0c;我们当然要率先体验一把…

chatgpt赋能python:Python给电影打分-如何使用Python评估您最喜爱的电影

Python给电影打分 - 如何使用Python评估您最喜爱的电影 Python是一种流行的编程语言&#xff0c;广泛用于数据科学和机器学习。但是&#xff0c;您是否知道您可以使用Python为您最喜爱的电影打分并评估其受欢迎程度&#xff1f;在这篇文章中&#xff0c;我们将介绍如何使用Pyt…

文心千帆大模型平台,一站式企业级大模型平台

文心千帆大模型平台&#xff0c;一站式企业级大模型平台 0. 前言1. 人工智能发展历程1.1 传统机器学习1.2 深度学习1.3 大模型时代 2. 文心千帆2.1 文心千帆介绍2.2 文心千帆应用场景2.3 文心千帆平台优势 3. 文心千帆初体验3.1 注册流程3.2 创建应用3.3 在线测试3.4 数据服务3…

【自我升级链】所谓的傅盛认知升级

所有学习上的成功&#xff0c;都只依靠两件事 – 策略和坚持&#xff0c;而坚持本身就是最重要的策略&#xff01; 前段时间读的书&#xff0c;看的一些文章里面&#xff0c;全都在提"认知"这个词。 但是&#xff0c;“认知”这个词&#xff0c;我是在2016年的时候就…

傅盛:AI是企业弯道超车的机会,大家在同一起跑线上

2019-10-20 11:58:08 第六届世界互联网大会于10月20日-22日在浙江乌镇召开。 猎豹移动CEO傅盛表示&#xff0c;从收入的相对值增长来看&#xff0c;猎豹的AI业务的增长还是挺快&#xff0c;“但是要短期内达到猎豹50亿级的盘子是不太可能的”。 傅盛认为&#xff0c;AI是企业弯…

从猎豹CEO傅盛和韩寒的没落,谈谈为什么曾经优秀的人突然变得平庸?

点赞再看&#xff0c;养成习惯&#xff0c;微信搜一搜【findyi】关注这个喜欢写情怀的程序员。 回复【1】获得程序员职场晋升PPT一份 一个读者的提问&#xff1a;洋哥&#xff0c;我从小都是学霸&#xff0c;本硕都是985&#xff0c;计算机科班出身&#xff0c;但进入职场后却始…

金山网络CEO傅盛: 产品设计, 简单才是王道

本文来自 http://www.36kr.com/p/151814.html 2012 年 9 月 8 日—9 日&#xff0c;中国软件开发者大会在北京国家会议中心举行&#xff0c;金山网络 CEO 傅盛在会上发表题为“简单唯美”的演讲&#xff0c;他表示&#xff0c;项目要想成功&#xff0c;产品设计一定要足够简单&…

傅盛认知三部曲之一:所谓成长就是认知升级

我一直在思索&#xff0c;怎么才能让一家公司更快地成长&#xff1f;一个人怎么才能从一群人的竞争当中脱颖而出&#xff1f; 1、人的四种认知状态 最近我看了一幅图&#xff0c;我在其上加了一个数字注脚。 这是一个人认知的四种状态——“不知道自己不知道”&#xff0c;“知…

【深度好文】强烈推荐:傅盛认知三部曲!

转载傅盛认知三部曲的原因 最近看到 傅盛 大佬关于认知的几篇文章&#xff0c;感觉实在牛逼&#xff0c;在此转载一下。 大家优先点击下面的几个链接查看原文吧&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 傅盛认知三部曲之一&#xff1a;所谓…

张鹏对话傅盛:产业互联网时代需要什么样的机器人?

12月21日&#xff0c;备受瞩目的极客公园创新大会十周年活动继续在北京举行。作为中国大型的创新者社区&#xff0c;全球科技、科学、文化艺术、创造力等领域里的科技主义者们在此汇聚一堂&#xff0c;共同为中国极客奉献思维升级的盛宴。猎豹移动董事长兼CEO傅盛受邀出席大会并…

傅盛:我为什么要不顾一切的努力?

猎豹最近不太好&#xff0c;刚被谷歌下架了45款产品。作为CEO&#xff0c;傅盛一定很难受&#xff0c;更要命的是&#xff0c;这次舆论站在了他的对立面&#xff0c;不少落井下石的人和媒体&#xff0c;一时间全部出动。 傅盛在360工作过&#xff0c;我加入360的时候恰逢傅盛和…

机器人军团和傅盛的答案

雷锋网消息&#xff0c;1月25日&#xff0c;傅盛再度卷入“人设崩塌”事件&#xff0c;起因为傅盛在自己公众号上发表了一篇名为《傅盛持续创新的十大“金句”》的文章&#xff0c;该文章由傅盛和极客公园创始人张鹏在2019 极客公园创新大会上谈话整理。此后引发与潘乱&#xf…

机器人军团和傅盛的答案

雷锋网消息&#xff0c;1月25日&#xff0c;傅盛再度卷入“人设崩塌”事件&#xff0c;起因为傅盛在自己公众号上发表了一篇名为《傅盛持续创新的十大“金句”》的文章&#xff0c;该文章由傅盛和极客公园创始人张鹏在2019 极客公园创新大会上谈话整理。此后引发与潘乱&#xf…

大模型创业:朱啸虎与傅盛的观点碰撞

在科技领域&#xff0c;大模型创业已经成为了一个热门的话题。随着AI技术的发展&#xff0c;大模型的应用越来越广泛&#xff0c;但同时也带来了一系列的挑战。最近&#xff0c;知名投资人朱啸虎和创业者傅盛就大模型创业的价值进行了一场激烈的讨论。本文将从他们的观点出发&a…

傅盛:认知升级三部曲

一、所谓成长就是认知升级 我一直在思索&#xff0c;怎么才能让一家公司更快地成长&#xff1f;一个人怎么才能从一群人的竞争当中脱颖而出&#xff1f; 1.人的四种认知状态 最近我看了一幅图&#xff0c;我在其上加了一个数字注脚。 这是一个人认知的四种状态——“不知道自…