Ask Your Question


asked 2013-02-07 01:55:09 -0500

Bomber19 gravatar image

updated 2013-02-12 00:58:12 -0500

Hi, i'm working with SIFT feature and need some information about the descriptor. In the origanal paper they say that the descriptor use a window of the size 16x16 around a keypoint with 4x4 subregions. My question is if they mean 16x16 pixel? Or is the size(in pixel) of the window depending on the scale? And if yes, how??

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2013-02-07 12:59:06 -0500

The SIFT descriptors are computed on the gaussian image (see createInitialImage in modules/nonfree/src/sift.cpp, where GaussianBlur function is applied). What I understand from the original paper is:

  • a 16x16 pixel region is evaluated around each descriptors;
  • this region is summed by block: 16 blocks of size 4x4 block around the pixel are aggregated in a single histogram. Therefore four histograms are computed around each candidate descriptors.

I think this is the implementation used in OpenCV (see SIFT_DESCR_WIDTH in the source file above), each of size 8 (8 directions for each gradient orientation). This is a constant in the source code, so you can not change it (or you have to recompile OpenCV).

edit flag offensive delete link more


So i devide the 16x16 pixel region in 4x4 blocks and calculate a histogramm for each block? Right?

Bomber19 gravatar imageBomber19 ( 2013-02-07 13:49:38 -0500 )edit

It's done by the function. In my opinion, you have nothing to do, except select the number of features you want to keep. Is there a raison to change the size of the window? Or it is just to understand the principles? If this feature is really needed, you can patch OpenCV and propose your patch to the community to have a feedback?

Mathieu Barnachon gravatar imageMathieu Barnachon ( 2013-02-08 02:30:22 -0500 )edit

I need this information for a documentation about the project that i've benn working on. And in the paper the descriptorsize is not detailed explained(size in pixel). Also the sourcecode couldn't help me out to get the real size that the descriptorwindow becomes .

Bomber19 gravatar imageBomber19 ( 2013-02-08 05:35:29 -0500 )edit

The OP asked a very good question as IMHO the description of the 16x16 region is confusing. Unfortunately I don't have an answer. I think the 16x16 region contradicts the other statement in Lowe's Paper that the descriptor bin width (single bin) is scale * magnifier because this determines the image region being used to build the descriptor in a different way.

SR gravatar imageSR ( 2013-03-11 09:16:43 -0500 )edit

Question Tools

1 follower


Asked: 2013-02-07 01:55:09 -0500

Seen: 9,986 times

Last updated: Feb 12 '13