📄 levelsetbandadaptive.m
字号:
function phi = levelsetbandadaptive( im, d_it, m_it, m_name, phi )% LEVELSETBANDADAPTIVE Segment the image using adaptive algorithm% LEVELSETBANDADAPTIVE( im, d_it, m_it, m_name, phi )% Segment the image im using level sets, given that the zero-level% level-set is given implicitly by phi. The current segmented% image is displayed every d_it iterations and written to disk% every m_iterations with name m_name*.png.% constantsglobal ITERATIONS;delta_t = 0.001;BAND_ITERATIONS = 100;BAND_WIDTH = 2;% calculate the stopping functionK_I = edgestop( im, 3, 2 );% keep track of iterationsiterations = 0;while( iterations < ITERATIONS ) % determine the narrow band points [ x, y ] = find( isfront( phi ) ); front = [ x, y ]; [ x, y ] = find( isband( phi, front, BAND_WIDTH ) ); band = [ x, y ]; % update the narrow band for BAND_ITERATIONS for kk = 1 : BAND_ITERATIONS % display current iteration fprintf( 1, '%d\n', iterations ); % display the segmented image every 'd_it' iterations if( mod( iterations, d_it ) == 0 ) disp( 'Displaying segmented image' ); segim = createimage( im, phi ); imshow( segim ); drawnow; end; % write current segmented image to file every 'm_it' % iterations if( mod( iterations, m_it ) == 0 ) disp( 'Saving movie frame to file' ); segim = createimage( im, phi ); filename = strcat( m_name, sprintf( '%06d', ( iterations / m_it ) + 1 ), '.png' ); imwrite( segim, filename ); end; % calculate the speed, extend it, and update phi speed = calcspeed( phi, K_I, front ); speed = extendspeedband( speed, front, band ); phi = phi - delta_t .* speed; % increment number of iterations iterations = iterations + 1; end;end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -