zl程序教程

您现在的位置是:首页 >  其它

当前栏目

深度图提取

提取
2023-09-11 14:15:33 时间


1.问题描述:


 深度图提取


2.部分程序:

%
% Geometric Blind Deconvolution script
%
% Copyright 2006 Paolo Favaro (p.favaro@hw.ac.uk)

% School of Engineering and Physical Sciences
% Heriot-Watt University, Edinburgh, UK

% Last revision: May 2006
%
% This program can be used only for research purposes.
% This program is distributed WITHOUT ANY WARRANTY; 
% without even the implied warranty of MERCHANTABILITY 
% or FITNESS FOR A PARTICULAR PURPOSE.

clear all
close all

% set to 1 to see plots, 0 otherwise
plotfigures = 1;

Yes = 1;
No = 0;
fprintf('Shape from Defocus (Least Squares)\n');
notValid = Yes;
while notValid
    method = input(['Which method do you want to test?'...
        '\nChoose generate, learn, overlap: '],'s'); 
    notValid = ~strcmp(method,'generate')&...
        ~strcmp(method,'learn')&...
        ~strcmp(method,'overlap');
end
%%%%%%%%%%%%%%%%%%%%%
% compute operators %
%%%%%%%%%%%%%%%%%%%%%
% ni is the square patch size 
% the larger ni the slower the algorithm
notValid = Yes;
while notValid
    ni = input(['Choose the patch size '...
        '\n3(fast&noisy),5,7,9(slow&smooth): '],'s');
    notValid = ~(ni=='3')&...
        ~(ni=='5')&...
        ~(ni=='7')&...
        ~(ni=='9');
end
ni = str2num(ni);
% fix rank of operators 
ranks = ni*ni; % operator ranks
if strcmp(method,'generate')
    % compute operators when PSF is known
    Hp = generate_operators(ni,ranks);
elseif strcmp(method,'learn')
    % compute operators when PSF is unknown 
    % learning approach; non overlapping patches
    Hp = learn_operators(ni,ranks);
else
    % compute operators when PSF is unknown
    % learning approach; overlapping patches
    Hp = learn_operators_overlap(ni,ranks);
end
%%%%%%%%%%%%%%%
% load images %
%%%%%%%%%%%%%%%
load DataSet

%%%%%%%%%%%%%%%%%%
% Estimate Depth %
%%%%%%%%%%%%%%%%%%
Depth = estimate_depth(I1,I2,Hp,plotfigures);

% optional smoothing
FilteredDepth = mediansmoothing(Depth,plotfigures);

return


3.仿真结论:

C5