У меня есть шумные данные с тремя пиками в MATLAB, и я хочу выполнить некоторую обработку изображений на нем. Пики имеют ширину около 5-9 пикселей в основании, в массиве 50 x 50. Как мне найти вершины? MATLAB очень новый для меня. Вот что у меня пока ...
Для моего исходного изображения назовем его array
, я пробовал
J = fspecial('gaussian',[5 5], 1.5);
C = imfilter(array, J)
peaks = imregionalmax(C);
но все еще есть некоторый шум вдоль базовой линии между пиками, поэтому я в итоге получаю тонну локальных максимумов, которые на самом деле являются просто значениями шума. (Я пытался играть с размером фильтра, но это не помогло.) Я также попытался
peaks = imextendedmax(C,threshold);
где порог был определен визуально ... который работает, но определенно не является хорошим способом сделать это, поскольку он, очевидно, не такой надежный.
Итак, как мне найти эти пики надежным способом?