MATLAB Answers

using gradient function to calculate curvature of ridges in a fingerprint

11 views (last 30 days)
divya r
divya r on 18 Nov 2012
I need to calculate the curvature of the ridges in a fingerprint image. I havent understood how to use the gradient function in matlab. I have used the :gradient(image) syntax of the function where "image" is a 281x231 logical matrix.
Error: g=zeros(size(image),class(image)); case of singleton dimention.
Is there any other way to calculate the curvature?

  1 Comment

Jan
Jan on 18 Nov 2012
Gradient of a logical matrix? Please read the documentation of gradient again and try the examples. A gradient is not defined on a logical matrix.
Please post some code, which reproduces the error. An exact copy of the error message would be helpful also. Currently we see the line, which causes the error, but not the message itself.

Sign in to comment.

Answers (1)

Image Analyst
Image Analyst on 18 Nov 2012
Edited: Image Analyst on 18 Nov 2012
A few problems here. First of all DON'T use image as the name of your image variable since "image" is the name of a built-in function.
Second, don't preallocate an all zero matrix like that. zeros() doesn't take logical type. Use false. So instead of
g=zeros(size(image),class(image))
do this:
g = false(size(logicalImage));
Third, I don't know if you want the curvature in the x-y plane or the curvature in the intensity direction.

  4 Comments

Show 1 older comment
Image Analyst
Image Analyst on 18 Nov 2012
OK, so that's why it failed - gradient() calls zeros() which is not meant for logicals. Why don't you change your comment to an answer? But I don't think she realizes that the gradient function actually operates on the intensity and I think she wants the radius of curvature in the x-y plane which is not what the gradient function gives. So she never should have called that function in the first place even if she had an integer or floating point image.
I'm not sure how to get the radius of curvature as you march along a curve in the x-y plane. Maybe some kind of modified Savitzky-Golay filter or something. Or else implement a sliding window filter and use the FAQ
divya r
divya r on 18 Nov 2012
I guess I am trying to do this all wrong. I do want the radius of curvature in the xy plane. I need it to find the point where the curvature is the maximum which will be the core point in the finger print.
Can I get some pointers on how to go ahead on this?

Sign in to comment.

Sign in to answer this question.