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

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

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

*No products are associated with this question.*

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.

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

## 0 Comments