Вопрос
У меня есть последовательность изображений, представляющая информацию о глубине, которую я хотел бы очистить. Есть некоторые выбросы (значения с интенсивностью ниже 25, для диапазона 0-255), которые я хотел бы заполнить приемлемой альтернативой (среднее значение, локализованное в этой конкретной области, может быть хорошим предположением).Удаление выбросов из серого изображения
Может ли кто-нибудь увидеть простой способ сделать это? Я попытался использовать средний фильтр (размер фильтра 10), заменив нежелательные значения на NaN, но это ухудшило ситуацию, что улучшилось, заменив их общим средним значением.
P.S. Кто-то уже предложил мне использовать быструю реконструкцию сейсмического импульса, но я бы не знаю, с чего начать ...
Реализовано решение (до сих пор)
Решение я реализовал (прежде чем читать о inpaint_nans
предложил по tmpearce):
- дублировать оригинальное изображение;
- заполнение недопустимых пикселей общим средним значением;
- использовать круговой диск луча 10 для размытия его;
- замена недопустимых значений в исходном изображении с тем, что я получил от точки 3.
- запустить медианный фильтр размера 10.
img2 = img;
img2(img < .005) = mean(img(:));
H = fspecial('disk',10);
img3 = imfilter(img2,H,'symmetric');
img4 = img;
img4(img < .3) = img3(img < .3);
filterSize = 10;
padopt = {'zeros','indexed','symmetric'};
IMG = medfilt2(img4, [1 1]*filterSize, padopt{p});
мои мысли точно, только 20 секунд слишком поздно. +1 – bla