Is there any way to identify the fingerprint contents in an image using matlab?
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
D Joseph
am 15 Aug. 2015
Kommentiert: Walter Roberson
am 29 Aug. 2015
If the image is mixed with fingerprints and certain characters, is there any way to pick up the fingerprints and leave the characters
0 Kommentare
Akzeptierte Antwort
Cedric
am 16 Aug. 2015
Bearbeitet: Cedric
am 16 Aug. 2015
Here is a lightweight approach that is absolutely not solid/stable; .. could be a starting point?
I = imread( 'fingerprint001.jpg' ) ;
bw = ~im2bw( I ) ;
% - Extract large blobs as mask.
mask = bwareafilt( bw, [400 Inf] ) ;
bw2 = bw & ~mask ;
% - Use bw2 as mask for I.
I2 = I ;
I2(~repmat(bw2,1,1,3)) = 0 ;
% - Display
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.
% - Crop bands.
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) ;
22 Kommentare
Cedric
am 21 Aug. 2015
Bearbeitet: Cedric
am 22 Aug. 2015
Ok, then you can reduce the complexity of the question by stating that:
- The fingerprint does not need to be detected algorithmically. By this I mean that if there are only 30 images, you can pre-process them all by hand and keep only the area with the fingerprint.
- The algorithm for enhancing remaining areas does not need to define how successful it is if the final analysis is performed visually. You can check out the result visually and determine if it is good or not, and refine parameters.
If these two statements are correct, the question becomes simpler, because there is no need for algorithms that detect region(s) of interest, that evaluate what operations to perform in these regions, to evaluate how successful these operations were.
MATLAB may not be the best solution though; have you tried asking on a Photoshop or a Gimp forum? I am mentioning these two because you may realize that each image needs a specific treatment, and there may be no way to find one type of processing that enhance all of them. In such case, you will have to process them individually anyway.
Finally what is the purpose? Enhancing means enhancing for a given purpose. To illustrate, if you need to detect specific features with an algorithm, enhancing may mean increasing the contrast. Doing this, you loose details, but you make macroscopic features stand out. Now if the purpose is to analyze the outcome visually, then you may prefer keeping the details.
Weitere Antworten (2)
Walter Roberson
am 15 Aug. 2015
Use an OCR (Optical Character Recognition) routine to locate the characters. Then you can remove them, or remove everything except them, depending upon your needs.
The OCR step is needed because there is a lot of variety in what characters can look like, and the way you have defined the process it is necessary to only locate some kinds of characters but not other kinds. (The general problem of locating all kinds of characters is not solvable, as any given mark could be a character in some language.
7 Kommentare
Walter Roberson
am 29 Aug. 2015
https://en.wikipedia.org/wiki/Infrared
Infrared (IR) is invisible radiant energy, electromagnetic radiation with longer wavelengths than those of visible light, extending from the nominal red edge of the visible spectrum at 700 nanometers (frequency 430 THz) to 1 mm (300 GHz) (although people can see infrared up to at least 1050 nm in experiments). Most of the thermal radiation emitted by objects near room temperature is infrared.
Image Analyst
am 17 Aug. 2015
I don't see why "cartoons" are needed in forensics. Anyway, there is no built-in fingerprint code. You're going to need some sophisticated algorithm way beyond what anyone here knows, especially for such bad fingerprint images as you showed here. Please go to VisionBib and find an algorithm there then code it up. Of course you must realize it won't be simple or short if it's smart enough to handle such poor quality images. And even the best algorithm out there might not work so great with your highly degraded images.
2 Kommentare
Siehe auch
Kategorien
Mehr zu Language Support finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!