MATLAB Answers

FP ridge orientation code only returning 45 or 135 degrees. Please help

Asked by Sam

Sam (view profile)

on 23 Sep 2013

Hi all, I am trying calculate fp orientation using equation given the image (Jain 1995). I am only getting two values 2.3562 and 0.7875 rad(45 deg and 135 deg) in the output matrix. Please help me to know where i am going wrong.

clc;clear all;close all;

img1=imread('1_1.png');

img1=normalise(img1);

[m n]=size(img1);

[gx gy]=imgradientxy(img1);

for i=9:m-9

`    for j=9:n-9`
`        gxy=0;gxx=0;gyy=0;`
```        for i1=-8:+8
for j1=-8:+8
gxy=gxy+((gx(i+i1,j+j1)).*(gy(i+i1,j+j1)));
gxx=gxx+power((gx(i+i1,j+j1)),2);```
`                gyy=gyy+power((gx(i+i1,j+j1)),2);`
```            end
end
Q(i,j)=pi/2+0.5*(atan2(double(2*gxy),double((gxx-gyy))));
end
end```

Products

No products are associated with this question.

1 Answer

Image Analyst (view profile)

Answer by Image Analyst

Image Analyst (view profile)

on 23 Sep 2013

Are gx and gy integers or doubles before you start multiplying them together. If things are being quantized, the first thing I look at is if it's doing integer math instead of floating point math. By the way, you can use ^ to raise to a power instead of calling the power() function.

Sam

Sam (view profile)

on 23 Sep 2013

gx,gy are double.. but looking for class of variables I found a typing error in gyy=gyy+power((gx(i+i1,j+j1)),2); (for gyy power arg should be gy). :|

just one problem remains...cant compute Q's for border regions

Q is 330x240

img1 is 338x248

is there a function where i can pad img1 with 8 cols(on right) and 8 rows on bottom.????

Join the 15-year community celebration.

Play games and win prizes!

Learn more

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!