⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 enopv2.m

📁 matlab程序
💻 M
字号:
function X = enopv2(X,Level,Degree)
%ENOPV2  2D Essentially Non-Oscillatory point-value decomposition.
%   Y = ENO2(X,L,N) computes the L-stage ENO decomposition of image
%   X using Nth-degree interpolation.  The size of X must be such that
%   size(X,1) and size(X,2) = 2^K + 1 for some integer K.  If not, the
%   right and bottom sides are padded using constant extrapolation.
%
%   For reconstruction, use L < 0 to reverse -L stages.
%
%   Example:
%   % Transform with 3 stages and 4th-degree interpolation
%   Y = enopv2(X,3,4);   % Decompose X
%   R = enopv2(Y,-3,4);  % Recover X from Y
%
%   See also ENOPV, ENOCA2.

% Pascal Getreuer 2005

if nargin < 3, error('Not enough input arguments.'); end

K = log2(size(X)-1);
M = pow2(ceil(K)) + 1 - size(X);

if any(M ~= 0)
   warning('Image padded to 2^K+1 size.');
   X = X([1:size(X,1),size(X,2)*ones(1,M(1))], ...
      [1:size(X,2),size(X,2)*ones(1,M(2))]);
end

if Level > 0
   for L = 0:Level-1
      M = (size(X)-1)*pow2(-L) + 1;
      X(1:M(1),1:M(2)) = enopv(enopv(X(1:M(1),1:M(2)),1,Degree,0,1),1,Degree,0,2);
   end
else
   for L = 1+Level:0
      M = (size(X)-1)*pow2(L) + 1;
      X(1:M(1),1:M(2)) = enopv(enopv(X(1:M(1),1:M(2)),-1,Degree,0,2),-1,Degree,0,1);
   end
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -