ESE = abs(sum(sum((abs(fftshift(fft2(a))) - CCDrecord))))/sum(sum(CCDrecord)) ;
时间: 2023-11-22 13:05:52 浏览: 39
这一行代码是用于计算每次迭代的误差,ESE 表示误差。其中,fft2 函数是进行二维傅里叶变换,fftshift 函数是将得到的傅里叶变换结果进行中心化,abs 函数是取得到的傅里叶变换结果的绝对值。计算误差时,首先计算重构出的物体的傅里叶平面的幅度信息与已知的幅度信息的差值,然后取差值的绝对值,最后对该绝对值进行求和并除以已知幅度信息的总和,得到每次迭代的误差。
相关问题
function output = shrinkHIO(data,maskparameter1,maskparameter2,loop1,loop2,loop3,loop4,beta) [M,N] = size(data) ; CCDrecord = data ; w_x=(-20:20); w_y=(-20:20); [X,Y]=meshgrid(w_x,w_y); sig=3; W=exp(-4*log(2)*(X.^2+Y.^2)./sig.^2); W = W/sum(sum(W)); autocor = fftshift(ifft2(ifftshift(CCDrecord .^2))) ; mask = abs(autocor) > maskparameter1*max(max(abs(autocor))) ; A = CCDrecord .* exp(1i*rand(M,N)) ; a = ifft2(ifftshift(A)) ; figure for j = 1:loop1 for i = 1:20 A = fftshift(fft2(a)) ; A(data~=-1) = CCDrecord(data~=-1) .* exp(1i*angle(A(data~=-1))) ; a1 = ifft2(ifftshift(A)) ; a = a1.*mask + a.*(mask==0) - beta * a1.*(mask==0) ; [j,i] end mask = conv2(abs(a),W,'same') ; mask = mask > maskparameter2*max(max(mask)) ; imagesc(abs(a)) ; title('recovered amplitude') ; V(j)=getframe; if sig >= 1.5 sig= sig* 0.99; else sig = 1.5 ; end W=exp(-4*log(2)*(X.^2+Y.^2)./sig.^2); W = W/sum(sum(W)); end for m = 1:loop4 for k = 1:loop2 A = fftshift(fft2(a)) ; A(data~=-1) = CCDrecord(data~=-1) .* exp(1i*angle(A(data~=-1))) ; a1 = ifft2(ifftshift(A)) ; a = a1.*mask + a.*(mask==0) - beta * a1.*(mask==0) ; %HIO ESE = abs(sum(sum((abs(fftshift(fft2(a))).^2 - CCDrecord.^2))))/sum(sum(CCDrecord.^2)); [k,m,ESE] end if m == loop4 figure ; imagesc(abs(a)) ; title('recovered amplitude') ; end for l = 1:loop3 A = fftshift(fft2(a)) ; A(data~=-1) = CCDrecord(data~=-1) .* exp(1i*angle(A(data~=-1))) ; a1 = ifft2(ifftshift(A)) ; a = a1.*mask ; %ER ESE = abs(sum(sum((abs(fftshift(fft2(a))).^2 - CCDrecord.^2))))/sum(sum(CCDrecord.^2)); [l,m,ESE] end end figure ; imagesc(abs(a)) ; title('recovered amplitude') ; output = a;每一步的具体意义
这段代码是一个基于HIO(Hybrid Input-Output algorithm)算法的图像重建算法。HIO算法是一种用于相位恢复或图像重建的迭代算法,它通过交替使用输入约束和输出约束来恢复图像。具体来说,这段代码中实现了以下几个步骤:
1. 根据输入数据计算出自相关函数,并据此生成一个二值掩膜,用于约束重建过程中的相位信息。
2. 初始化图像,将其与随机相位进行傅里叶变换,用于产生初始相位信息。
3. 迭代重建过程,其中包括:
a. 使用输入约束,根据已知的相位信息更新幅度信息。
b. 使用输出约束,根据已知的幅度信息更新相位信息。
c. 根据二值掩膜,将更新后的图像进行修正。
d. 计算误差,根据误差判断停止条件是否满足。
4. 输出重建结果。
总之,这段代码实现了一个基于HIO算法的图像重建过程,通过迭代优化幅度和相位信息,逐步恢复出原始图像。
function output1 = HIO(CCDrecord,support1,beta,loop) [M,N] = size(CCDrecord); A = CCDrecord .* exp(1i*rand(M,N)) ; %初始物体猜测,傅里叶平面 a = ifft2(ifftshift(A)) ; %初始物体猜测,实物平面 figure(1) for i = 1:loop ; A = fftshift(fft2(a)) ; A(CCDrecord~=-1) = CCDrecord(CCDrecord~=-1) .* exp(1i*angle(A(CCDrecord~=-1))) ; a1 = ifft2(ifftshift(A)) ; support2 = ones(M,N)-support1; a = a1.*support1 + a.*support2 - beta * a1.*support2 ; ESE = abs(sum(sum((abs(fftshift(fft2(a))) - CCDrecord))))/sum(sum(CCDrecord)) ;%求每次迭代的误差 [i ESE] imagesc(abs(a)); V(i)=getframe;%捕获显示在屏幕上的当前坐标区作为影片帧。F 是一个包含图像数据的结构体。getframe 按照屏幕上显示的大小捕获这些坐标区。它并不捕获坐标区轮廓外部的刻度标签或其他内容。 end output1 = a; figure(2) imshow(mat2gray(abs(CCDrecord)));title('原图'); end中support1和support2的作用
在 HIO 函数中,support1 和 support2 是两个二值化的支持区域,用于控制重构图像的位置和形状。其中,support1 对应的是重构图像的有效区域,即重构图像中物体所在的区域,而 support2 对应的则是重构图像的无效区域,即重构图像中背景和噪声所在的区域。
在函数中,support1 和 support2 由外部传入,可以是一个矩阵或者是一个函数。在函数中,使用这两个支持区域对重构图像进行加权更新,即只对支持区域内的像素进行更新,而对不在支持区域内的像素保持不变。这样做的目的是为了防止算法收敛到错误的局部最优解。
具体来说,a1.*support1 表示支持区域内的像素更新为重构结果,a.*support2 表示不在支持区域内的像素保持不变,-beta * a1.*support2 表示对不在支持区域内的像素进行反投影去除。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)