www.pudn.com > level_set_methods_1.1.zip > evolve_normal_vector_ENO3.m, change:2005-05-05,size:1304b


function [delta, H1_abs, H2_abs] = evolve_normal_vector_ENO3(phi, dx, dy, Vn_ext, u_ext, v_ext) 
% 
% Finds the amount of evolution under a force in 
% normal direction and a force based on a vector field, 
% and using 3rd order accurate ENO scheme. 
% Does not assume that phi is approximately a signed 
% distance function and uses SLLF scheme. 
% 
% Author: Baris Sumengen  sumengen@ece.ucsb.edu 
% http://vision.ece.ucsb.edu/~sumengen/ 
% 
 
 
delta = zeros(size(phi)+6); 
data_ext = zeros(size(phi)+6); 
data_ext(4:end-3,4:end-3) = phi; 
 
% Calculate the derivatives (both + and -) 
phi_x_minus = zeros(size(phi)+6); 
phi_x_plus = zeros(size(phi)+6); 
phi_y_minus = zeros(size(phi)+6); 
phi_y_plus = zeros(size(phi)+6); 
% first scan the rows 
for i=1:size(phi,1) 
	phi_x_minus(i+3,:) = der_ENO3_minus(data_ext(i+3,:), dx);	 
	phi_x_plus(i+3,:) = der_ENO3_plus(data_ext(i+3,:), dx);	 
end 
 
% then scan the columns 
for j=1:size(phi,2) 
	phi_y_minus(:,j+3) = der_ENO3_minus(data_ext(:,j+3), dy);	 
	phi_y_plus(:,j+3) = der_ENO3_plus(data_ext(:,j+3), dy);	 
end 
 
 
[delta, H1_abs, H2_abs] = LLF_normal_vector(dx, dy, Vn_ext, u_ext, v_ext, phi_x_minus, phi_x_plus, phi_y_minus, phi_y_plus); 
H1_abs = H1_abs(4:end-3,4:end-3); 
H2_abs = H2_abs(4:end-3,4:end-3); 
delta = delta(4:end-3,4:end-3);