?? zerosolve.m
字號:
function y = zeroSolve(P, b)%% Overload matrix solves for a psfPrec object using% zero boundary conditions.%% J. Nagy & K. Lee 3/7/02PSFs = P.matdata;nregions = size(PSFs);imsize=size(b);if length(imsize) == 1 imsize = [imsize, 1, 1];elseif length(imsize) == 2 imsize = [imsize, 1];endif length(nregions) == 1 nregions = [nregions,1,1];elseif length(nregions) == 2 nregions = [nregions,1];endrsize = ceil(imsize ./ nregions);%% Coding the rest of this will be easier if all of the image subregions% have the same dimensions. If it's not, we pad with a few zeros to make% it so ...%padsize1 = rsize .* nregions - imsize;if any( padsize1 < 0 ) error('Something is wrong here ...')endb = padarray(b, padsize1, 'post');%% Now we get information about beginning and ending indices of subregions% so we can "get" subregions correctly ...%[RIidx, RJidx, RKidx] = region_indices( nregions, rsize );y = zeros(size(b));if (P.transpose) for k = 1:size(PSFs,3) for i = 1:size(PSFs,1) for j = 1:size(PSFs,2) bsub = b(RIidx(i,1):RIidx(i,2), RJidx(j,1):RJidx(j,2), RKidx(k,1):RKidx(k,2)); %M=PSFs; M = PSFs{i,j,k}; y(RIidx(i,1):RIidx(i,2), RJidx(j,1):RJidx(j,2), RKidx(k,1):RKidx(k,2)) = ... real( ifftn( conj(M) .* fftn(bsub) ) ); end end endelse for k = 1:size(PSFs,3) for i = 1:size(PSFs,1) for j = 1:size(PSFs,2) bsub = b(RIidx(i,1):RIidx(i,2), RJidx(j,1):RJidx(j,2), RKidx(k,1):RKidx(k,2)); %M=PSFs; M = PSFs{i,j,k}; y(RIidx(i,1):RIidx(i,2), RJidx(j,1):RJidx(j,2), RKidx(k,1):RKidx(k,2)) = ... real( ifftn( M .* fftn(bsub) ) ); end end endendy = y(1:imsize(1), 1:imsize(2), 1:imsize(3));
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -