Разница по Гауссу не произвела изображения, как я ожидал - PullRequest
0 голосов
/ 27 мая 2020

Я следовал некоторым рекомендациям на этом веб-сайте здесь , чтобы реализовать алгоритм отсеивания. Теперь мне удалось построить пирамиду DoG, как описано на сайте. Но когда я пытаюсь построить дерево DoG, оно отображается не так, как ожидалось, тот, который в руководстве был черно-белым (двоичный), но мой результат - output :

Является ли вывод дерева DoG должно быть двоичным? или мне что-то здесь не хватает? потому что, если я печатаю изображение после каждого вычитания, я замечаю некоторые отрицательные значения. это как-то связано с этим? вот как выглядит мой код DoG:

def DoG_octave(gaussian_octave):
    octave = []
    for i in range(0, len(gaussian_octave)-1):
      next_image = gaussian_octave[i+1] -  gaussian_octave[i]
      #next_image = (next_image > next_image.mean()) * next_image
      octave.append(next_image)

    fig, axs = plt.subplots(nrows=1, ncols=(len(octave)),figsize=(20,3))
    for i, ax in enumerate(axs.flatten()):
      plt.sca(ax)

      plt.imshow(octave[i], cmap="gray")
      plt.title('Image: {}'.format(i+1))

    plt.show()

    return np.array(octave)
...