0001 classdef TVInpainter < FDPDEInpainter
0002
0003
0004 properties
0005 epsilon = 1e-2;
0006 end
0007
0008 methods
0009 function obj = TVInpainter(varargin)
0010 obj@FDPDEInpainter(varargin{:});
0011 varargin = obj.removeParentParametersFromVarargin(varargin{:});
0012
0013 p = inputParser;
0014 validGTZero = @(x) isscalar(x) && x >= 0;
0015 addParameter(p, 'Epsilon', 1e-2, validGTZero);
0016 parse(p, varargin{:});
0017
0018 obj.epsilon = p.Results.Epsilon;
0019 end
0020
0021 function f = stepFun(obj, f, mask)
0022 f = -div(obj.neps(grad(f)));
0023 end
0024
0025 function u = amplitude(obj, u)
0026 u = sqrt(sum(u.^2,3)+obj.epsilon^2);
0027 end
0028
0029 function u = neps(obj, u)
0030 u = u./repmat(obj.amplitude(u), [1 1 2]);
0031 end
0032 end
0033 end