资源简介
相位恢复算法,基于强度信息恢复相位信息。GERCHBERG_SAXTON 算法。

代码片段和文件信息
iterative=300; %设迭代次数为300次吧
imagename=‘cat.jpg‘; %你想要提取相位的图像名称
phaseimage=‘phase.png‘; %要保存的相位图像名称
%空域输入图像的幅度(是已知的,也就是清晰的图像,它的灰度就是幅值)和相位图像(待恢复)
known_abs_spatial=imread(imagename); %作为输入图像的幅度,是已知的
known_abs_spatial =rgb2gray(known_abs_spatial); %注意要用单通道图像做实验,如果你读取的是彩色图像,那就吧这行取消注释变成灰度图像吧
known_abs_spatial=im2double(known_abs_spatial); %将图像灰度映射到0~1
unknown_phase=known_abs_spatial; %Peppers图像作为输入图像的相位,也即为待恢复的数据,
%要求它和known_abs_spatial大小一致,所以这里直接赋值就好了
unknown_phase=im2double(unknown_phase); %将图像灰度映射到0~1
unknown_phase2=unknown_phase*2*pi; %相位范围映射到0-2*pi
unknown_phase2(unknown_phase2>pi)=unknown_phase2(unknown_phase2>pi)-2*pi;%进一步映射至[-pi+pi]
[widthlength]=size(known_abs_spatial); %获取Lena图像的大小
input=known_abs_spatial.*exp(i*unknown_phase2); %最终输入图像:幅度*e^(i*相位角度),它是复数图像
known_abs_fourier=abs(fft2(input)); %先将input图像进行傅立叶变换,然后取模,就是傅氏变换后的幅度
%以下开始迭代求相位
phase_estimate=pi*rand(widthlength); %这是生成了一副大小为(width*length)的图像
%它的像素值是在[0pi]范围内随机生成的。
imshow(phase_estimate)
%以下开始迭代
for p=1:iterative
signal_estimate_spatial=known_abs_spatial.*exp(i*phase_estimate); %Step 1 构造estimated signal:还是幅度*e^(i*相位角度)变成复数形式
temp1=fft2(signal_estimate_spatial); %傅立叶变换到频域
temp_ang=angle(temp1); %求相位弧度,它的范围是[-pipi]
signal_estimate_fourier=known_abs_fourier.*exp(i*temp_ang); %Step 2 替换傅氏变换后的幅度,产生estimate Fourier transform
temp2=ifft2(signal_estimate_fourier); %Step 3 对Step 2产生的estimate Fourier transform进行傅立叶反变换,又变换到空域了
phase_estimate=angle(temp2); %Step 4:estimated phase
end
%以上循环就是通过随便预设一个相位图像,在循环中不断调整逼近真实的相位,直到满足条件(也就是我们求的相位和真实相位非常接近的时候)
%不过这里我们只需要设定一个比较大的循环就可以了,基本上都可以满足条件了,这个激光原理就讲过了。
phase_estimate(phase_estimate<0)=phase_estimate(phase_estimate<0)+2*pi; %把estimate_phase从[-pi+pi],映射到[02pi]
retrieved=phase_estimate/(2*pi);%再映射到[01]
figure (1)
imshow(retrieved);title(‘相位图像‘)%显示我们提取到的相位图像
imwrite(retrievedphaseimage)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-05-08 06:42 Gerchberg-Saxton-GS-algorithm-master\
文件 2820 2018-05-08 06:42 Gerchberg-Saxton-GS-algorithm-master\GS_phase_retrieval.m
文件 228 2018-05-08 06:42 Gerchberg-Saxton-GS-algorithm-master\README.md
文件 83724 2018-05-08 06:42 Gerchberg-Saxton-GS-algorithm-master\cat.jpg
文件 174076 2018-05-08 06:42 Gerchberg-Saxton-GS-algorithm-master\phase.png
- 上一篇:FDTD模拟光栅
- 下一篇:Tomasulo算法的模拟软件.zip
相关资源
- MCGS触摸屏西门子s7_1200驱动
- 单片机AT89s52控制GSM模块TC35i发短信,
- MCGS与单片机通信
-
Differential ex
pression patterns of Toll-li - 由国家自然科学基金委员会U1232105和中
- 360态势感知与安全运营平台产品技术
- 山东联通GSM计费系统的容灾应用方案
- Rξ和Unit度量中的Abelian-Higgs模型的重
- 从临界点到更高点的Abelian Higgs模型的
- Abelian Higgs模型中的振幅,递归关系和
- 非交换平面上具有介电函数的Abelian
- 具有可见和隐藏扇区的广义Maxwell-Hi
- Maxwell–Higgs型广义模型中的解析涡
- 具有可见和隐藏扇区的Chern–Simo
- MCGSJS090625_SW_运行环境专用版_V1.0
- GSM监控系统51单片机设计
- Investigation of the Absorption Mechanism of G
- Installation OpenMeetings 5.0.0-M2 on Centos 7
-
Changes of the ex
pression of β-catenin - 基于GSM接收机的集成多相滤波器设计
- GAL编程器软件很好用的东西
- ntfs-3g_ntfsprogs-2013.1.13.tgz
-
SHAPE MEMORY ALLOY-ba
seD SMART BUILDINGS - 浪潮myGS-EIP企业信息门户管理软件
- 浪潮myGS-SCM供应链管理软件
- 浪潮myGS-Financing资金管理软件
- Profibus GSD文件.rar
- 利用BSMV-VIGS鉴定TaPAL2的抗赤霉病功能
- BSMV-VIGS技术在小麦抗赤霉病基因鉴定
- mcgs串口驱动
评论
共有 条评论