Home Tutorials Matlab Matlab per l'elaborazione delle immagini digitali: il filtro di 'degrado atmosferico' di Hufnagel e Stanley

Google Translator

 

Effettua una donazione

 

 

 

 

 

Page Rank Check    

 

 

Ultimi articoli

Matlab per l'elaborazione delle immagini digitali: il filtro di 'degrado atmosferico' di Hufnagel e Stanley
Tutorials - Matlab
Scritto da RedBaron85   
Sabato 30 Gennaio 2010 13:40

Matlab per l'elaborazione delle immagini digitali: il filtro di 'degrado atmosferico' di Hufnagel e Stanley


In questo articolo, mostrerò come implementare in Matlab un filtro di degrado, utilizzato per esaminare la qualità dei filtri di restauro delle immagini digitali: il filtro di degrado 'atmosferico' di Hufnagel-Stanley.


Lo script apre un file immagine, 'immagine.jpg', ne ricava lo spettro di Fourier (con la FFT) e a questo applica il filtro di Hufnagel e Stanley, costituito da una matrice (il valore di ogni cella è definito da una equazione che tiene conto della posizione della stessa; tale equazione, che è appunto quella del filtro, viene implementata in Matlab all'interno di due for annidati); del risultato viene fatta, quindi, l'antitrasformata, che viene mostrata a video.


Ebook, videocorsi e tutorials di RedBaron85 su Blender, Java3D e altro su effe12.com


NOTA IMPORTANTE: utilizzare, con questo script, solo immagini in scala di grigi a 8 bit, o Matlab restituirà un errore per via delle dimensioni delle matrici, che non coincideranno.


Per alcuni comandi di manipolazione delle immagini in forma di matrici (size, cicli for, uint8, ...) si rimanda all'articolo, pubblicato precedentemente, sulle basi dell'elaborazione delle immagini digitali mediante Matlab.

 

 

Ecco il codice dello script:

clear;

immagine = imread('immagine.jpg');

fourier = fft2(immagine);

[M,N] = size(immagine);

filtro = zeros(M,N);

k = 0.0001;        % Coefficiente da modificare per impostare la turbolenza; range consigliato: 0.0025 per turbolenza forte, 0.00025 per debole.

for x=1:M

for y=1:N

filtro(x,y) = exp(-k .* (x^2+y^2)^(5/6));

end;

end;

filtrata = filtro .* fourier;

antiFourier = real(ifft2(filtrata));

antiFourier = uint8(antiFourier);

subplot(1,2,1);    imshow(immagine);    subplot(1,2,2);    imshow(antiFourier);    .

 

E' tutto, a presto!

 


Risorse consigliate su Matlab:


                 

 

Tags:     tutorial      matlab      script      scripting      elaborazione      immagini digitali      filtro      degrado atmosferico      hufnagel      stanley
Ultimo aggiornamento Martedì 05 Febbraio 2013 22:53
 

 

Ricerca personalizzata

 

Milanese Francesco - Partita IVA: 04950350878

Copyright © 2013 RedBaron85.com: Informatica, CG 2D e 3D, Blender, Python, Java 2D e 3D, 3D Studio e altro ancora!. Tutti i diritti riservati.
Joomla! è un software libero rilasciato sotto licenza GNU/GPL.
AltroArticoliblog utentiBlueprintsContestenglishProgrammazioneModelliElencoNewsTexturesTutorialsVideotutorials