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

本文介绍了如何使用Opencv进行数字水印和频域水印的操作。数字水印通过调整RGB色值的某一位来隐藏信息,而频域水印利用傅里叶变换在频域内嵌入水印,两者在一定程度上能抵抗图像的简单篡改。然而,模糊处理可能消除数字水印,但锐化处理则相对无损。提供了相关源码和学习资源。
摘要由CSDN通过智能技术生成

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

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[:,:

  • 6
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值