sunyinhui / jopensurf

Automatically exported from code.google.com/p/jopensurf
Other
0 stars 0 forks source link

Possibly wrong created table for descrete gaussian distribution. #5

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Hi,

The issue is possibly in GaussianConstants.java file. This issue does not make 
the work of the algorithm absolutely wrong, but can decrease the precision of 
upright descriptors.

Gaussian distribution is symmetric for SURF algorithm (sigma_x == sigma_y). 
This means in the descrete gaussian table Gauss25, cells Gauss25[i][j] and 
Gauss25[j][i] must be equal. It is not so in GaussianConstants.java 

Gauss33 table seems to be created correctly.

Sorry if I'm wrong. May be I just misunderstanding something.

--
Best regards,
Sergei L.

Original issue reported on code.google.com by sergei.n...@gmail.com on 31 Dec 2010 at 7:13

GoogleCodeExporter commented 9 years ago
No, I believe that you are right, I'll take a look at it now.

Original comment by jojopot...@gmail.com on 24 Jan 2011 at 3:53

GoogleCodeExporter commented 9 years ago
Sergei, I took a look at the table and it looked suspiciously unlike a gaussian 
distribution. I plotted it out to see what it looks like, and I think it looks 
like the corner of a 2D gaussian distribution.

I'll double check with the original dev to make sure though.

Original comment by jojopot...@gmail.com on 25 Jan 2011 at 5:01

Attachments:

GoogleCodeExporter commented 9 years ago
I still haven't heard anything back from Chris, I'm tempted to just replace it 
with a distribution that is exactly symmetrical.

Original comment by andrew.s...@gmail.com on 1 Feb 2011 at 5:40

GoogleCodeExporter commented 9 years ago
Hi Andrew,

Ok. Thank you!

Best regards,
Sergei L.

Original comment by sergei.n...@gmail.com on 2 Feb 2011 at 10:48

GoogleCodeExporter commented 9 years ago
My 5 cents:

1. Gauss33 is not used anywhere.

2. Gauss25 is only used in line 163 of Surf.java:

    gauss = GaussianConstants.Gauss25[Math.abs(i)][Math.abs(j)];

   where i = -6 ... 6, and j = -6 ... 6

It is therefore correct that Gauss25 table only contains the upper right 
quadrant of Gauss distribution.

Original comment by peter.le...@gmail.com on 28 Aug 2011 at 9:18

GoogleCodeExporter commented 9 years ago
But you are right, Sergei. It is not symmetrical.

Original comment by peter.le...@gmail.com on 28 Aug 2011 at 9:23

GoogleCodeExporter commented 9 years ago
As I can see, this was already fixed in C++ version of OpenSURF: 
http://code.google.com/p/opensurf1/source/detail?r=87

Original comment by peter.le...@gmail.com on 28 Aug 2011 at 3:54

GoogleCodeExporter commented 9 years ago
Fixed!

http://code.google.com/p/jopensurf/source/detail?r=25

Original comment by andrew.s...@gmail.com on 30 Oct 2011 at 6:47

GoogleCodeExporter commented 9 years ago
Thank you!

Original comment by sergei.n...@gmail.com on 30 Oct 2011 at 7:38