Я пытаюсь вычислить 2d авто и взаимную корреляцию изображений с помощью python (scipy.sig.fftconvolve). В терминах корреляции обычно требуется вычесть среднее значение. Однако уравнение для ковариации говорит, чтоPython 2D Автокорреляция fft - вычесть среднее или нет?
E [(X-E [X]) (Y-E [Y])] == E [XY] -E [X] E [Y].
Это означает, что теоретически я должен получить те же результаты, если я вычтем среднее значение перед выполнением автоматической корреляции или если вычесть среднее значение квадрата после корреляции. Это справедливо для случая пика или компонента постоянного тока, но не для остальной части изображения. И они выглядят по-разному, Вот пример autocorrelation with mean^2 subtracted off
и autocorrelation with mean subtracted off image before doing correlation
Так какой путь правильный путь ??
Как вы имеете дело с границами? Если вы относитесь ко всему за границами как к нулю, то, если вы не вычтите среднее значение, вы получите большой треугольный оверлей (или пирамидальный в 2D) постоянного значения, исчезающего в нулевой области. – tom10
Я был нулевым дополнением, так что да, я видел пирамидальную структуру, которую вы упоминаете. Есть ли лучший способ справиться с границами (если я не хочу, чтобы он обертывался на фактическое изображение)? – cinwick2321
Часть 1: Есть три подхода к границам, первые два вы уже упоминали: 1) нулевое заполнение; 2) круговые данные; 3) сопоставить небольшую выборку данных с полным набором и оставаться в пределах границ. 3 может работать хорошо, если вы ищете функцию, которая мала относительно размера полного набора данных. Часть 2: Я думаю, что неинтересная, но часто подавляющая пирамидальная структура - достаточно хорошая причина для вычитания среднего (т. Е. Математика, которую вы показали, не рассматривает этот эффект). – tom10