Discover MakerZone

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

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

Sam

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

Image Analyst

Contact us