Я пытался вычислить ssd между двумя изображениями rgb и обнаружил, что возвращаемые значения содержат отрицательные значения, что странно, поскольку ssd возводит в квадрат различия до их суммирования.Итак, я проанализировал проблему, и оказалось, что проблема в возведении в квадрат.
Это моя функция ssd:
def ssd(kernel_left, kernel_right):
return np.sum((kernel_left- kernel_right)**2)
Вот как я анализировал проблему:
print(kernel_left[1,1]) # = [61 57 56]
print(kernel_right[1,1]) # = [87 59 29]
print(kernel_left[1,1] - kernel_right[1,1]) # = [-26 -2 27]
print((kernel_left[1,1] - kernel_right[1,1])**2) # = [-92 4 -39]
, что не имеет никакого смысла для меня, как возведение в квадрат дает неправильные и отрицательные значения.