Is there any way to identify the fingerprint contents in an image using matlab?

조회 수: 5 (최근 30일)
If the image is mixed with fingerprints and certain characters, is there any way to pick up the fingerprints and leave the characters

채택된 답변

Cedric
Cedric 2015년 8월 16일
편집: Cedric 2015년 8월 16일
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
Cedric
Cedric 2015년 8월 21일
편집: Cedric 2015년 8월 22일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Walter Roberson
Walter Roberson 2015년 8월 15일
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
Walter Roberson
Walter Roberson 2015년 8월 29일
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
Image Analyst 2015년 8월 17일
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
D Joseph
D Joseph 2015년 8월 17일
편집: D Joseph 2015년 8월 17일
Thanks@Analyst. But I couldn't find any algorithm in VisionBib
D Joseph
D Joseph 2015년 8월 17일
Cartoons are not needed.Its just to display as noises. I want the fingerprint texture components.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Language Support에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by