Очевидно, что точная реализация будет чем-то более сложным, чем то, что я опишу ниже, но, возможно, она предложит отправную точку:
Поскольку вы говорите об интенсивности изображения, может быть целесообразно нормализовать дванаборы необработанных данных интенсивности в первую очередь.(Таким образом, вы должны быть в состоянии распознать что-то, где data1 последовательно составляет две трети значения data2.) Я бы, вероятно, начал с присвоения значения (например) 100 наиболее интенсивной части исходного изображения и 0 -наименее интенсивный - корректировка всех других значений в соответствии с этим масштабом.
После нормализации данных следующий шаг, вероятно, будет таким же простым, как итерация нормализованных массивов с использованием некоторого простого сравнения (например, Abs(data1[n] - data2[n]) < SomeThreshold
).Каждый раз, когда проходит сравнение, увеличивается «длина совпадения».Если длина совпадения была равна нулю, вы также можете установить переменную «начальный индекс».Если сравнение не удается, обновите информацию о «наилучшем совпадении», а затем обнулите счетчик «длины» до нуля.
Я бы порекомендовал упростить замену функции сравнения.Я не знаю наверняка, но если вы пытаетесь выполнить какой-либо тип сопоставления изображений, я не удивлюсь, если вам придется использовать более сложный механизм сравнения (например, вам может понадобиться пороговое значение для «дрейфа»).если, например, основное изображение такое же, но одно из них было подвергнуто последующей обработке, чтобы сделать одну сторону более яркой, чем оригинал).