【毕业设计系列】042:基于DCT的数字图像水印matlab&simulink实现【含Matlab源码】

Date: 2022.5.28


前言

在大学毕业设计和课题设计的时候,课题要求实现《基于DCT的数字图像水印》,采用Matlab语言和simulink实现,水印嵌入和提取效果不错,效果图如下。

注:需要相关代码可以在订阅本专栏后私信咨询博主。

1、设计思路

采用DCT分块的方式实现数字图像水印的嵌入和提取,并加入的噪声、高斯低通滤波、中值滤波、剪切、椒盐噪声等多种攻击方式进行鲁棒性测试,并采用PSNR和NC两个指标来衡量水印嵌入和提取的鲁棒性。

其中中值滤波攻击采用simulink仿真的方式实现。

2、实现效果图

2.1、水印嵌入和提取

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,下面是MATLAB的代码,可以实现将灰度图像Lena.bmp图像分解成8个位平面,并分别去掉从1到7个位平面,并与剩余的位平面图像进行比较: ```matlab % 读取Lena.bmp图像 lena = imread('Lena.bmp'); % 将图像转换为二进制图像 lena_bin = de2bi(lena, 8); % 分解成8个位平面 bit_planes = cell(1, 8); for i = 1:8 bit_planes{i} = lena_bin(:, :, i); end % 分别去掉从1到7个位平面,并与剩余的位平面图像进行比较 for i = 1:7 % 去掉第1到第i个位平面 removed_planes = bit_planes; for j = 1:i removed_planes{j} = zeros(size(removed_planes{j})); end % 重构图像 removed_lena = bi2de(cat(3, removed_planes{:})); % 与剩余的位平面图像进行比较 remaining_planes = bit_planes; for j = i+1:8 remaining_planes{j} = zeros(size(remaining_planes{j})); end remaining_lena = bi2de(cat(3, remaining_planes{:})); diff = abs(removed_lena - remaining_lena); % 显示去掉第1到第i个位平面后的图像和与剩余的位平面图像比较的结果 figure; subplot(1, 3, 1); imshow(removed_lena); title(sprintf('Removed bit planes %d-%d', 1, i)); subplot(1, 3, 2); imshow(remaining_lena); title(sprintf('Remaining bit planes %d-%d', i+1, 8)); subplot(1, 3, 3); imshow(diff, []); title('Difference'); end ``` 这段代码将灰度图像Lena.bmp图像分解成8个位平面,然后分别去掉从1到7个位平面,并与剩余的位平面图像进行比较。最后显示去掉第1到第i个位平面后的图像和与剩余的位平面图像比较的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

matlab科技工作室

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值