www.pudn.com > balloonSnake(matlab).rar > BoundMirrorEnsure.m
function B = BoundMirrorEnsure(A)
> Ensure mirror boundary condition
>
> The number of rows and columns of A must be greater than 2
>
> for example (X means value that is not of interest)
>
> A = [
> X X X X X X
> X 1 2 3 11 X
> X 4 5 6 12 X
> X 7 8 9 13 X
> X X X X X X
> ]
>
> B = BoundMirrorEnsure(A) will yield
>
> 5 4 5 6 12 6
> 2 1 2 3 11 3
> 5 4 5 6 12 6
> 8 7 8 9 13 9
> 5 4 5 6 12 6
>
> Chenyang Xu and Jerry L. Prince, 9/9/1999
> http://iacl.ece.jhu.edu/projects/gvf
[m,n] = size(A);
if (m<3 | n<3)
error('either the number of rows or columns is smaller than 3');
end
yi = 2:m-1;
xi = 2:n-1;
B = A;
B([1 m],[1 n]) = B([3 m-2],[3 n-2]); > mirror corners
B([1 m],xi) = B([3 m-2],xi); > mirror left and right boundary
B(yi,[1 n]) = B(yi,[3 n-2]); > mirror top and bottom boundary