Here is a lightweight approach that is absolutely not solid/stable; .. could be a starting point?
I = imread( 'fingerprint001.jpg' ) ;
bw = ~im2bw( I ) ;
mask = bwareafilt( bw, [400 Inf] ) ;
bw2 = bw & ~mask ;
I2 = I ;
I2(~repmat(bw2,1,1,3)) = 0 ;
figure() ;
set( gcf, 'Units', 'normalized', 'Position', [0.1, 0.1, 0.8, 0.8] ) ;
subplot( 2, 2, 1 ) ;
imshow( I ) ;
title( 'Original' ) ;
subplot( 2, 2, 2 ) ;
imshow( bw ) ;
title( 'BW' ) ;
subplot( 2, 2, 3 ) ;
imshow( mask ) ;
title( 'Mask' ) ;
subplot( 2, 2, 4 ) ;
imshow( bw2 ) ;
title( 'Mask''ed' ) ;
figure() ;
set( gcf, 'Units', 'normalized', 'Position', [0.1, 0.1, 0.8, 0.8] ) ;
imshow( I2 ) ;
==== FORMER =============================================================
I cropped bands, but it is counter productive.
id = find( bw(:,1), 1 ) ;
bw = bw(id:end,:) ;
idl = find( ~bw(fix(end/2),:), 1 ) ;
idr = find( ~bw(fix(end/2),:), 1, 'last' ) ;
bw = bw(:, idl:idr) ;