Я пытаюсь написать приложение для анализа звука, и мне нужно определить локальные максимумы в 2D-массиве, который представляет собой спектрограмму. У меня уже есть библиотека с открытым исходным кодом, которая может генерировать спектрограмму с помощью быстрых преобразований Фурье, но мне было интересно, знает ли кто-нибудь о каких-нибудь хороших библиотеках, которые помогут мне на самом деле найти максимумы? Я не совсем уверен, что искать в Google - лучшее, что я мог придумать, было «числовой библиотекой», но это меня не очень продвинуло.
Желательно на C, но я открыт для других предложений.





Поиск пиков - довольно общая проблема. Это уже обсуждалось однажды на SO как Обнаружение пика измеряемого сигнала.
Предоставленные ответы включают несколько жизнеспособных эвристик.
Конечно, я предпочитаю мой собственный ответ, если вам нужна строгость, но ROOT написан на C++ и почти наверняка слишком тяжел для вашего приложения, поэтому вам нужно вырезать только тот код, который вы хотите ...
В научной библиотеке GNU есть структура многомерной минимизации, который можно легко заставить работать для максимизации. Однако он предназначен для возврата только одного минимума, а не нескольких разных минимумов.