Opencv学习笔记 - 频域手段添加盲水印

本文介绍了如何利用OpenCVSharp和傅里叶变换在图像的频域中添加盲水印,以增强水印的隐匿性和抗攻击性。通过示例代码展示了添加水印的过程,结果显示在添加水印后图像视觉上几乎无变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         频域添加数字水印的方法,是指通过某种变换手段(傅里叶变换,离散余弦变换,小波变换等)将图像变换到频域(小波域),在频域对图像添加水印,再通过逆变换,将图像转换为空间域。相对于空域手段,频域手段隐匿性更强,抗攻击性更高。

        代码使用OpenCvSharp / c#实现

        添加水印:

// 读取图像并获取b通道
string filename = @"C:\Users\xiaomao\Desktop\123.png";
Mat origin = Cv2.ImRead(filename, ImreadModes.Color);
Mat[] arr = origin.Split();
Mat image = arr[0];

// 将输入图像扩大到最佳尺寸
Mat padded = new Mat();
int m = Cv2.GetOptimalDFTSize(image.Rows);
int n = Cv2.GetOptimalDFTSize(image.Cols);
Cv2.CopyMakeBorder(image, padded, 0, m - image.Rows, 0, n - image.Cols, BorderTypes.Constant, Scalar.All(0));

Mat temp = new Mat();
padded.ConvertTo(temp, MatType.CV_3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坐望云起

如果觉得有用,请不吝打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值