标签:subplot imshow title Image FFT 源码 数字水印 Logo
1 简介
基于 FFT实现数字水印嵌入
2 部分代码
%Watermarking based on FFT
clc
clear all
close all
%Reading Original Image
[FileName,FilePath] = uigetfile('*.*');
Image = imread([FilePath,FileName]);
if size(image,3) == 1
Image = rgb2gray (Image);
end
[ImageRows,ImageColoumns] = size(Image);
%Reading Logo
[FileName,FilePath] = uigetfile('*.*');
Logo = imread([FilePath,FileName]);
if size(Logo,3) == 1
Logo = rgb2gray(Logo);
end
Logo = im2bw(Logo,0.7);
[LogoRows,LogoColoumns] = size(Logo);
figure, subplot(2,3,1),imshow(Image);
title('Original Image')
subplot(2,3,4),imshow(Logo);
title('Logo')
%Water Mark Logo, lines 17 & 18 also can be used for Logo extraction.
ImageFFT = fft2(Image);
ImageFFTshift = fftshift(ImageFFT);
ImageFFTshift2 = ImageFFTshift;%Is used for inserting the Logo far from center of FFT.
%Inserting the Logo to center of the FFT shifted Image.
ImageFFTshift(ImageRows / 2:(ImageRows / 2+ LogoRows - 1), ...
ImageColoumns / 2 :(ImageColoumns / 2 + LogoColoumns - 1)) = Logo;
% Reversing the FFT to obtain Image in spatial domain.
WaterMArkedImage = ifftshift(ImageFFTshift);
WaterMArkedImage = ifft2(WaterMArkedImage);
subplot(2,3,2),imshow(uint8(WaterMArkedImage))
title('Watermarked Image')
subplot(2,3,5),imshow(ImageFFTshift);
title('Embeded Logo in FFT2')
%Inserting the Logo outside the center of the FFT shifted Image.
ImageFFTshift2(10:(10 + LogoRows - 1),5 : 5 + LogoColoumns - 1)= Logo;
WaterMArkedImage2 = ifftshift(ImageFFTshift2);
WaterMArkedImage2 = ifft2(WaterMArkedImage2);
subplot(2,3,3),imshow(uint8(WaterMArkedImage2));
title('Watermarked Image')
subplot(2,3,6),imshow(ImageFFTshift2);
title('Embeded Logo in FFT2')
%When logo is far from center Image quality dose not change!
3 仿真结果
4 参考文献
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
标签:subplot,imshow,title,Image,FFT,源码,数字水印,Logo 来源: https://blog.csdn.net/qq_59747472/article/details/123419824
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。