%基于fresnel变换的无透镜4-f加解密模拟,fresnel变换用角谱传播理论计算
clear;
clc;
np=256;%采样点
lambda=633e-9;%入射波长(key)
step=50e-6; % um 空域采样 (dx<N*lambda/2)
range=np*step; % x,y的大小范围
scale=-range/2:step:range/2-step; %物平面采样
ftscale=(np/range^2)*scale; %等价于d_ftscale=1/range(空间频率采样)
[x,y]=meshgrid(scale,scale); %物平面坐标
[fx,fy]=meshgrid(ftscale,ftscale);%空间频率域坐标
%mt=t(x,y);%输入函数
mt=double(imread('baboon.bmp'))/255; %明文
mask1=double(imread('RM1.bmp','bmp'))/255;
mask2=double(imread('RM2.bmp','bmp'))/255;
% First stage
rt1=exp(1i*2*pi*mask1); %第一块相位模板
fai=mt.*rt1;
dt=fftshift(fft2(fai)); %先变换到频域
distance1=2;
ff=h2(fx,fy,distance1,lambda);%角谱传播函数
ft=ff.*dt; %传播后的频谱
% Second stage
rt2=exp(1i*2*pi*mask2); %第二块相位模板
ft=ft.*rt2; %频域滤波
distance2=2;
ff=h2(fx,fy,distance2,lambda);%角谱传播函数
ft=ft.*ff; %最后频域密文
%显示密文
temp=abs(ifft2(fftshift(ft))); %密文
figure(1),
imshow(mat2gray(temp));
%----------------------------------------------------
% 解密过程
%----------------------------------------------------
%回传2
distance1=2;%可以测试灵敏度 (0.1量级)
distance2=2;
lambda=633e-9; %(1nm量级)
ff=h2(fx,fy,-distance2,lambda);
ft=ft.*ff.*conj(rt2);
%回传1
ff=h2(fx,fy,-distance1,lambda);
ft=ft.*ff;
%由频域变换到空域
ft=ifft2(ft);
ft=ft.*conj(rt1);
temp=mat2gray(abs(ft));
%显示解密结果
imwrite(temp,'n8.bmp','bmp');
figure(2),
imshow(temp);
基于菲涅尔域的双随机相位编码图像加密方案,利用角谱传播法实现matlab.zip
版权申诉
104 浏览量
2024-04-08
20:20:26
上传
评论
收藏 255KB ZIP 举报
matlab科研助手
- 粉丝: 1w+
- 资源: 2054
最新资源
- 毕业设计基于python矩阵分解的推荐算法研究源码+详细文档+全部数据资料 高分项目.zip
- 基于网络的入侵检测系统源码+数据集+详细文档(高分毕业设计).zip
- 微信小程序源码 旅行故事分享 - 面包旅行App界面设计与文本展示资源下载
- 微信小程序源码 创意互动游戏 - 你画我猜App下载
- 摸底考试_学生版20230305.py
- 课程设计基于FPGA数字钟课程设计源码+课设报告(95分以上).zip
- 基于Java的企业家申报系统设计源码
- Cesium案例,集成各种模型,推演,各种Cesium效果
- 基于Python的Struts2全漏洞扫描利用工具设计源码
- python朴素贝叶斯(Naive Bayes)算法,机器算法
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈