Я следовал некоторым рекомендациям на этом веб-сайте здесь , чтобы реализовать алгоритм отсеивания. Теперь мне удалось построить пирамиду 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)