📄 extend.m
字号:
function Ae=extend(A, flag)% extend.m extends data across the boundaries (to make other codes% uniform and simple).% Input : A is an nxmxk array. % Output: an expanded image (across four boundary edges)% if flag ==1, do Nuemann extension (zero derivative). % if flag ~=1, do zero extension. d=length(size(A)); % so d is the dimension of A. % d=2 means a one-channel 2-D image % d=3 means at least 2-channel 2-D image.if d==2 %%% so A is a grey-leve image. [n, m]= size(A); % define the interior of the extended. Ae(2:n+1, 2:m+1)=A; if flag==1, % Nuemann extension % the four boundary edges Ae(1, 2:m+1)=A(1,:); Ae(n+2, 2:m+1)=A(n, :); Ae(2:n+1, 1)=A(:, 1); Ae(2:n+1, m+2)=A(:, m); % the four corners Ae(1, 1)=A(1, 1); Ae(1, m+2)=A(1, m); Ae(n+2, 1)=A(n, 1); Ae(n+2, m+2)=A(n, m);else % zero extension % the four boundary edges hz = zeros(1, m); vz = zeros(n, 1); Ae(1, 2:m+1)=hz; Ae(n+2, 2:m+1)=hz; Ae(2:n+1, 1)=vz; Ae(2:n+1, m+2)=vz; % the four corners Ae(1, 1)=0; Ae(1, m+2)=0; Ae(n+2, 1)=0; Ae(n+2, m+2)=0;endelse % so d=3 -- 3-dimension. [n, m, k]=size(A); % k=3 or 2 in our applications. % define the interior Ae(2:n+1, 2:m+1, :)=A; if flag==1, % Nuemann extension % the four boundary edges Ae(1, 2:m+1, :) =A(1, :, :); Ae(n+2, 2:m+1, :)=A(n, :, :); Ae(2:n+1, 1, :) =A(:, 1, :); Ae(2:n+1, m+2, :)=A(:, m, :); % the four corners Ae( 1, 1, :) =A( 1, 1, :); Ae( 1, m+2, :) =A( 1, m, :); Ae( n+2, 1, :) =A( n, 1, :); Ae( n+2, m+2, :)=A( n, m, :); else % Zero extension % the four boundary edges hz = zeros(1, m, k); vz = zeros(n, 1, k); Ae( 1, 2:m+1, :) =hz; Ae( n+2, 2:m+1, :) =hz; Ae( 2:n+1, 1, :) =vz; Ae( 2:n+1, m+2, :) =vz; % the four corners corner=zeros(1, 1, k); Ae( 1, 1, :) =corner; Ae( 1, m+2, :) =corner; Ae( n+2, 1, :) =corner; Ae( n+2, m+2, :)=corner;endend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -