Grasshopper

algorithmic modeling for Rhino

3D FingerPrint - need to extract ridges and valleys? Estimation Curvatures

Hello,

I need to extract ridges and valleys of a 3D fingerprint. The output should be a ply file which shows exactly where are the ridges and valleys on 3d fingerprint using different colors.

**Input file** - ply file with just x,y,z locations. I got it from a 3d scanner. Find the out.ply file attached.


**nisha.m234@gmail.com**.

**Algorithm:**
I am trying to find principal curvatures for extracting the ridges and valleys. (in the attached file see page 42. You can read from page 30. I am trying to achieve something like that.) 

Views: 2266

Attachments:

Replies to This Discussion

any updates?? anyone ??

Is this roughly what you expect to get ?

Hey Systemiq,

Thanks a lot for working on this. I am trying to extract ridges and valleys. It should look like a fingerprint. The images you added does not seem to look like a fingerprint. Fingerprint as in should have some circles as we generally have on our finger. 

I tried using MeshLab. There if you apply the "ball pivoting triangles" filter and then applied polkadot3d shader I was able to see the ridgeys and valleys. Not accurate but close. But, I want to be able to code it.

Here is how it looks in Meshlab after I apply the shader: But I am not able to code this!

 

If I understand it correctly, ridges and valleys are local maxima and minima on surface (local max and min considering the height of a point relatively to the locally average normal of the surface).

I dont think the shader shows you anything, if you color discrete curvature you get something like this :

I doubt you will be able to indentify anything with this point cloud, the point density/resolution is too low to discernate details.

With something like this : 

it would be probably easier.

I think this is the best i can do.

Hey Systemiq, Thanks a lot. I will talk to my prof to see if I can get a good dataset. 

I think that systemiq is right - point cloud resolution is too low.

Just got the reply from my professor. It seems I cannot get a new dataset. I have to work on the same dataset :(

I am thinking of a way to generate a higher resolution data-set from the same. I can create a mesh and generate extra tons of points from it. Any other suggestion? 

 

Thanks!

If the only dataset you have is the out.ply you provided, I can't see any way to extract anything better from it.

But I am not expert at all.

If the aim of your work was to find a way to extract fingerprint identification from very low quality 3D scanning, I think the quality is  way too low.

If your prof cant understand that, well I am sorry for you, but again, it's the first time I work on something like that, and I may have missed something.

Generating extra points from a mesh wont give you  more informations about the fingerprint which generated the original point cloud.

I'd take some fingerprint image from google, maybe blur it a little and apply it as a displacement map. This should give you a good place to start and a refenence to compare your results to.
My professor suggested that I could use a meshed version to generate a ton of extra points in the shape of the original finger, then displace them in the normal direction according to some fingerprint-y displacement map. Might even be able to use a blurred finger print image for that displacement map, but most of the ones I find only cover the center of the finger. I am still trying to figure out what this means !

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service