Domanda
Ho una sequenza di immagini che rappresenta informazioni di profondità che vorrei pulire. Ci sono alcuni valori anomali (valori con intensità inferiore a 25, per un intervallo 0-255) che vorrei essere riempito con un'alternativa accettabile (un valore medio localizzato in quell'area specifica potrebbe essere una buona ipotesi).Rimozione di valori anomali da un'immagine in scala di grigi
Qualcuno può vedere un modo semplice per farlo? Ho provato a utilizzare un filtro mediano (dimensione del filtro di 10) sostituendo i valori indesiderati con NaN, ma ha peggiorato la situazione, che migliora invece sostituendoli con un valore medio generale.
P.S. Qualcuno mi ha già proposto di utilizzare una ricostruzione wavelet veloce , ma io non so davvero da dove cominciare ...
soluzione implementata (finora)
La soluzione che ho implementato (prima di leggere su inpaint_nans
suggerito per tmpearce) è:
- duplicare l'immagine originale;
- riempiendo i pixel non validi con un valore medio generale;
- utilizzare un disco circolare di raggio 10 per sfocarlo;
- sostituendo i valori validi nell'immagine originale con quello che ho ottenuto dal punto 3.
- corsa un filtro mediano di dimensione 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});
miei pensieri esattamente, solo 20 secondi troppo tardi. +1 – bla