MATLAB Answers

Sam

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

Asked by Sam
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

  0 Comments

Products

No products are associated with this question.

1 Answer

Answer by Image Analyst
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.

  1 Comment

Sam
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.????


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today