Gointerface接口声明实现及作用详解
586
2022-09-08
【图像隐藏】基于 DCT算法实现彩色数字水印嵌入提取含Matlab源码(隐函数图像)
1 简介
文章对DCT(离散余弦变换)域图像数字水印算法进行了研究,并用matlab工具进行实验,结果表明该算法使水印的嵌入达到了较好的鲁棒性和不可见性.对原始信号做 DCT 的算法:Cox 和 Piva 等人提出的 DCT 技术的经典之作。Cox 利用随机数发生器产生标准正态序列作为水印信息对图像进行整体 DCT 变换后,选取除去 DC 系数之外部分较低频率系数叠加水印信息;Piva 则修改整幅图像的中频部分。对原始信号分块后,再作 DCT 的算法:Hsu 和 Wu 把图像进行 8*8 分块,将一个二进制序列作为水印放入 DCT 的中频区;有些学者则计算整个图像的 DCT,把一个实数序列嵌入DCT 的中频系数上。选择中频区的好处是一方面尽量减少嵌入信息对图像主观视觉的影响;同时,尽量避免有损压缩对水印信息可能带来的损失。
2 部分代码
clear,clc %{%------------------------------------------------------------------%加入水印%------------------------------------------------------------------Watermarking='./Test picture/test_1.jpg';WM=imread(Watermarking); %水印图像figure,imshow(WM),title('Watermarking');%-----------------------------------------------Image_name ='./Test picture/test_2.jpg';IM=imread(Image_name); %原始载体figure,imshow(IM),title('Original drawing');%-----------------------------------------------Add_Watermarking(Watermarking,Image_name); %添加水印%-----------------------------------------------At_Watermarking_picture='./Watermarking picture/At Watermarking picture.png';AWM=imread(At_Watermarking_picture); %添加水印后的图片figure,imshow(AWM),title('After watermarking picture');%------------------------------------------------------------------%加密%------------------------------------------------------------------Modulation_Key=0.362000000001; %加密密钥Image_name='./Watermarking picture/At Watermarking picture.png';W_encryption_picture=imread(Image_name); %将加密的图像figure,imshow(W_encryption_picture),title('Before the encryption');%-----------------------------------------------Image_Encryption(Modulation_Key,Image_name); %混沌加密函数%-----------------------------------------------encryption_picture='./Encryption picture/encryption picture.png';image_encryption=imread(encryption_picture); %加密后图像figure,imshow(image_encryption),title('After encrypted');%------------------------------------------------------------------%解密%------------------------------------------------------------------Modulation_Key; %解密密钥Image_name='./Encryption picture/encryption picture.png';image_encryption=imread(Image_name); %被加密的图像figure,imshow(image_encryption),title('Before the decryption');%-----------------------------------------------Image_Decryption(Modulation_Key,Image_name) %解密函数%-----------------------------------------------decryption_picture='./Decryption picture/decryption picture.png';image_Decryption=imread(decryption_picture); %解密后的图像figure,imshow(image_Decryption),title('After decrypted');%}%------------------------------------------------------------------%提取水印%------------------------------------------------------------------Image_name='./Decryption picture/decryption picture.png';A_Watermarking_Picture=imread(Image_name); %提取水印前的图像figure,imshow(A_Watermarking_Picture),title('Before extract Watermarking');%-----------------------------------------------Extract_Watermarking(Image_name)%-----------------------------------------------Watermarking_picture='./Watermarking picture/Watermarking picture.png';A_Watermarking_Picture=imread(Watermarking_picture); %提取的水印图像figure,imshow(A_Watermarking_Picture),title('Watermarked image');%------------------------------------------------------------------
3 仿真结果
4 参考文献
[1]吴和静, 闵昆龙, 刘芳,等. 基于DCT域的图像数字水印算法及matlab实现[J]. 中国科技信息, 2014(9):2.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~