Алгоритм поиска пиков в 2D-массиве

Допустим, у меня есть массив 2D-аккумуляторов в javaint[][] array. Массив может выглядеть так:

(оси x и z представляют индексы в массиве, ось y представляет значения - это изображения int[56] [56] со значениями от 0 до 4500) array sample 1

или

array sample 1

Что мне нужно сделать, так это найти пики в массиве - в первом 2 пика и 8 пиков во втором массиве. Эти пики всегда «очевидны» (между пиками всегда есть промежутки), но они не обязательно должны быть похожими, как на этих изображениях, они могут быть более или менее случайными - эти изображения не основаны на реальных данных, а только на образцах. . Реальный массив может иметь размер 5000x5000 с пиками от тысяч до нескольких сотен тысяч... Алгоритм должен быть универсальным, я не знаю, насколько большим может быть массив или пики, я также не знаю, сколько там пиков являются. Но я знаю какой-то порог — пики не могут быть меньше заданного значения.

Проблема в том, что один пик может состоять из нескольких меньших пиков рядом (первое изображение), высота может быть совершенно случайной, а также размер может существенно различаться в пределах одного массива (размер - я имею в виду количество единиц, которые он занимает). в массиве - один пик может состоять из 6 единиц, а другой из 90). Это также должно быть быстро (все делается за 1 итерацию), массив может быть очень большим.

Любая помощь приветствуется — я не жду от вас кода, только правильную идею :) Спасибо!


edit: Вы спрашивали про домен - но он довольно сложный и имхо не может помочь с проблемой. На самом деле это массив ArrayList с трехмерными точками, например ArrayList< Point3D >[][], и рассматриваемое значение — это размер ArrayList. Каждый пик содержит точки, принадлежащие одному кластеру (в данном случае плоскости) — этот массив является результатом алгоритма, который сегментирует облако точек. Мне нужно найти самое высокое значение в пике, чтобы я мог поместить точки из «самого большого» массива в плоскость, вычислить некоторые параметры из него и правильно сгруппировать большинство точек из пика.
12
задан Jaa-c 6 March 2012 в 17:29
поделиться