PythonSIFT icon indicating copy to clipboard operation
PythonSIFT copied to clipboard

Why using same gaussian_kernels to generate GaussianImages?

Open yllgl opened this issue 3 years ago • 1 comments

def generateGaussianImages(image, num_octaves, gaussian_kernels):
    """Generate scale-space pyramid of Gaussian images
    """
    logger.debug('Generating Gaussian images...')
    gaussian_images = []

    for octave_index in range(num_octaves):
        gaussian_images_in_octave = []
        gaussian_images_in_octave.append(image)  # first image in octave already has the correct blur
        for gaussian_kernel in gaussian_kernels[1:]:
            image = GaussianBlur(image, (0, 0), sigmaX=gaussian_kernel, sigmaY=gaussian_kernel)
            gaussian_images_in_octave.append(image)
        gaussian_images.append(gaussian_images_in_octave)
        octave_base = gaussian_images_in_octave[-3]
        image = resize(octave_base, (int(octave_base.shape[1] / 2), int(octave_base.shape[0] / 2)), interpolation=INTER_NEAREST)
    return array(gaussian_images, dtype=object)

gassian_kernel is:

print(gaussian_kernels)
array([1.6, 1.22627, 1.54501, 1.94659, 2.45255, 3.09002])

the first octave sigma is 1.6, we blur this image by 1.94659 to produce our last image, which has a blur of sqrt(1.6 ** 2 + 1.22627 **2 +1.54501 **2 +1.94659 ** 2) == 3.2. And 2 * 1.6 == 3.2, so we’ve moved up exactly one octave! Sounds good... However, the next octave, which sigma is 3.2, still uses the same gaussian_kernels, and it will produce sqrt(3.2 ** 2 + 1.22627 **2 +1.54501 **2 +1.94659 ** 2) == 4.23, which is not equivalent to 3.2*2. I think it's wrong. Could you give me some advice?

yllgl avatar Dec 05 '21 11:12 yllgl

please refer to https://github.com/rmislam/PythonSIFT/issues/13#issuecomment-753893502

casiatao avatar Mar 30 '22 07:03 casiatao

Yes, please refer to the comment @casiatao refers to. Thanks. Feel free to reopen this issue @yllgl if you feel that comment does not answer your question.

rmislam avatar Nov 02 '22 19:11 rmislam