基于离散余弦变换(DCT)傅里叶变换(DFT)小波变换(DWT)的彩色图像数字水印的嵌入、提取简介及MATLAB实现

本文介绍了基于DFT、DCT和DWT的数字水印嵌入与提取,探讨了DCT变换的特点,包括其在图像处理中的作用,以及整体与分块DCT的区别。通过MATLAB实现,展示了DCT水印嵌入过程,并分析了嵌入水印后图像的PSNR值。
摘要由CSDN通过智能技术生成


参考博客
https://blog.csdn.net/weixin_44132627/article/details/105560989

dft变换

close all;
clear all;
I=imread('1.jpg')
J=rgb2gray(I);
K_1=fft2(J);
L_1=abs(K_1/256)
K_2=fftshift(K_1)
L_2=abs(K_2/256)
% 运行一次可以打印多个figure
figure;
%将figure分割成2行2列4块
subplot(2,2,1);
imshow(I);title('原始图像');
subplot(2,2,2)
imshow(J);title('灰度图像');
subplot(2,2,3)
imshow(uint8(L_1));title('灰度图像傅里叶频率')
subplot(2,2,4);
imshow(uint8(L_2));title('平移后的频谱')

代码调试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

运行结果

在这里插入图片描述

dct变换

简介

简单的DCT

DCT除了上述介绍的几条特点,即:实数变换、确定的变换矩阵、准最佳变换性能外,二维DCT还是一种可分离的变换,可以用两次一维变换得到二维变换结果。是一种实数域变换,对图像进行离散余弦变换之后,许多有关图像的重要可视信息都集中在DCT变换的一小部分系数中(低频部分)
dct 的matlab实现是使用函数dct2,是一个基于FFT的快速算法来提高当前输入较大的输入方阵的计算速度,对于较小的方阵使用dctmtx(N),N 是DCT变换矩阵的维数,DCT 的系数是原始图像信号在频率不断增大的余弦函数上的投影,一个图像的DCT低频系数分布在系数矩阵的左上角,高频分布在右下角。低频系数的绝对值大于高频系数的绝对值。

分块dct

B=blkproc(A,[m,n],fun,P1,P2,…),其中A为原始信号矩阵,[m,n]为分块的大小,fun 为对每一个分块x的操作规则,P1是fun中调用的参数,响应的DCT系数矩阵也被分块。
在这里插入图片描述
图片来自
https://wenku.baidu.com/view/fab37c4952e2524de518964bcf84b9d529ea2c10.html

DCT变换特点

系数值全部集中在0值附近,不为0的集中在系数矩阵的左上角,没有保留原图像的边缘,轮廓信息,DCT缺乏时局性。

整体DCT变换和分块DCT变换的区别

分块DCT变换是反应了图像某一部分的信息,而整体DCT变换是对整副图像,但是运算速度比分块DCT慢。
在这里插入图片描述
在这里插入图片描述
图片来自

https://blog.csdn.net/WilsonSong1024/article/details/80318006

代码

close all;
clear all;
clc;
I=imread('1.jpg')
J=dct2(rgb2gray(I));
figure('Name','离散余弦变换');
subplot(1,2,1);
imshow(I
  • 10
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Nefelibat

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

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

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

打赏作者

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

抵扣说明:

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

余额充值