Come configurare smartphone e PC. Portale informativo
  • casa
  • Consiglio
  • Filtri per immagini digitali. Descrizione della casella degli strumenti di elaborazione delle immagini

Filtri per immagini digitali. Descrizione della casella degli strumenti di elaborazione delle immagini

Il filtraggio delle immagini è un'operazione che dà come risultato un'immagine della stessa dimensione, ottenuta da quella originale secondo determinate regole. Tipicamente, l'intensità (colore) di ciascun pixel nell'immagine risultante è determinata dalle intensità (colori) dei pixel situati in alcune sue vicinanze nell'immagine originale.

Le regole di filtraggio possono essere molto diverse. Il filtraggio delle immagini è una delle operazioni fondamentali della visione artificiale, del riconoscimento di modelli e dell'elaborazione delle immagini. Il lavoro della stragrande maggioranza dei metodi di elaborazione delle immagini inizia con l'uno o l'altro filtraggio delle immagini sorgente.

Filtri lineari avere una descrizione matematica molto semplice. Assumeremo che sia data l'immagine mezzitoni originale A e indicheremo le intensità dei suoi pixel come A(x, y). Un filtro lineare è definito da una funzione a valori reali h (filtro kernel) definita sul raster. Il filtraggio stesso viene eseguito utilizzando l'operazione di convoluzione discreta (somma ponderata):

B(x, y) = h(i, j) ③③A(x, y) = h(i, j) A(xi, y-j). (17.3.1)

Il risultato è l'immagine B. Tipicamente, il kernel del filtro è diverso da zero solo in qualche intorno N del punto (0, 0). Al di fuori di questo intorno h(i, j) è uguale a zero, o molto vicino ad esso e può essere trascurato. La somma viene eseguita su (i, j)  N, e il valore di ciascun pixel B(x, y) è determinato dai pixel dell'immagine A che giacciono nella finestra N centrata nel punto (x, y) (denominato dall'insieme N(x, y) ). Un nucleo di filtro definito su un intorno rettangolare N può essere visto come una matrice m per n in cui le lunghezze dei lati sono numeri dispari. Quando si specifica un kernel come matrice, dovrebbe essere centrato. Se un pixel (x, y) si trova in prossimità dei bordi dell'immagine, allora le coordinate A (xi, y-j) per certi (i, j) possono corrispondere a pixel A inesistenti all'esterno dell'immagine. Questo problema può essere risolto in diversi modi.

Evita di filtrare questi pixel ritagliando i bordi dell'immagine B o applicando i valori originali dell'immagine A ai loro valori.

Non includere il pixel mancante nella somma, distribuendo il suo peso h(i, j) equamente tra gli altri pixel nell'intorno N(x, y).

Determina i valori dei pixel al di fuori dei confini dell'immagine utilizzando l'estrapolazione.

Definisci i valori dei pixel oltre i confini dell'immagine utilizzando una continuazione speculare dell'immagine.

La scelta del metodo viene effettuata tenendo conto delle caratteristiche specifiche del filtro e dell'immagine.

Filtri antialiasing. Il filtro di livellamento rettangolare più semplice di raggio r viene specificato utilizzando una matrice di dimensione (2r+1) × (2r+1), i cui valori sono tutti uguali a 1/(2r+1) 2, e la somma dei valori è uguale a uno. Questo è un analogo bidimensionale di un filtro a forma di U a media mobile unidimensionale passa-basso. Quando si filtra con un kernel di questo tipo, il valore del pixel viene sostituito dal valore medio dei pixel in un quadrato con il lato 2r+1 attorno ad esso. Esempio di maschera filtro 3×3:

.

Un uso dei filtri è la riduzione del rumore. Il rumore varia indipendentemente da pixel a pixel e, a condizione che l'aspettativa matematica del valore di rumore sia zero, il rumore dei pixel vicini si annullerà a vicenda una volta sommati. Maggiore è la finestra di filtraggio, minore sarà l'intensità media del rumore, tuttavia si verificherà anche una corrispondente sfocatura dei dettagli significativi dell'immagine. L'immagine di un punto bianco su sfondo nero durante il filtraggio (reazione ad un singolo impulso) sarà un quadrato uniformemente grigio.

La riduzione del rumore utilizzando un filtro rettangolare presenta uno svantaggio significativo: tutti i pixel nella maschera del filtro a qualsiasi distanza da quello da elaborare hanno lo stesso effetto sul risultato. Un risultato leggermente migliore si ottiene modificando il filtro aumentando il peso del punto centrale:

.

È possibile ottenere una riduzione del rumore più efficace se l'influenza dei pixel sul risultato diminuisce con l'aumentare della distanza da quello elaborato. Un filtro gaussiano con un kernel ha questa proprietà: h(i, j) = (1/2 2) exp(-(i 2 +j 2)/2   Un filtro gaussiano ha un valore diverso da zero kernel di dimensione infinita, tuttavia i valori del kernel del filtro decrescono molto rapidamente fino a zero man mano che ci si allontana dal punto (0, 0), e quindi in pratica possiamo limitarci alla convoluzione con una piccola finestra attorno a (0, 0) , ad esempio, prendendo il raggio della finestra pari a 3σ.

Anche il filtraggio gaussiano viene livellato. Tuttavia, a differenza di un filtro rettangolare, l'immagine di un punto con il filtraggio gaussiano sarà un punto sfocato simmetrico, con la luminosità decrescente dal centro verso i bordi. Il grado di sfocatura dell'immagine è determinato dal parametro σ.

Filtri di miglioramento del contrasto . Mentre i filtri anti-aliasing riducono il contrasto locale di un'immagine sfocandola, i filtri di miglioramento del contrasto hanno l'effetto opposto e sono essenzialmente filtri ad alta frequenza spaziale. Il nucleo di un filtro di miglioramento del contrasto nel punto (0, 0) ha un valore maggiore di 1, con una somma totale dei valori pari a 1. Ad esempio, i filtri di miglioramento del contrasto sono filtri con un nucleo definito dalle matrici :

. .

Un esempio di utilizzo di un filtro è mostrato in Fig. 17.3.1. L'effetto di miglioramento del contrasto si ottiene dal fatto che il filtro enfatizza la differenza tra le intensità dei pixel vicini, allontanando queste intensità l'una dall'altra. Questo effetto sarà tanto più forte più valore membro centrale del nucleo. Un artefatto caratteristico del filtraggio lineare di miglioramento del contrasto è la luce evidente e gli aloni scuri meno evidenti attorno ai confini.

Filtri di differenza – si tratta di filtri lineari specificati mediante approssimazioni discrete di operatori differenziali (utilizzando il metodo delle differenze finite). Questi filtri vengono riprodotti ruolo vitale in molte applicazioni, ad esempio, per compiti di ricerca dei confini in un'immagine.

L'operatore differenziale più semplice è la derivata rispetto all'ascissa d/dx, definita per funzioni continue. Varianti comuni di operatori simili per immagini discrete sono i filtri Prewitt e Sobel:

. .

I filtri che approssimano l'operatore di derivata della coordinata y d/dy si ottengono trasponendo matrici.

L'algoritmo più semplice per calcolare la norma del gradiente da tre punti adiacenti:

G(x, y) =
.

Viene utilizzata anche una formula di calcolo semplificata:

Calcolo della norma del gradiente su quattro punti adiacenti (operatore di Roberts):

L'algoritmo di Sobel utilizza otto campioni di luminosità in prossimità del punto centrale:

G(x, y) =
, G(x, y) 
,

Gx x, y = [ A x -1, y -1 +2 A x -1, y + A x -1, y +1 ] - [ A x +1, y -1 +2 A x +1, y +Ax+1, y+1],

Gyx,y = - .

Oltre ad una determinazione più accurata della norma del gradiente, l'algoritmo di Sobel consente anche di determinare la direzione del vettore del gradiente nel piano di analisi dell'immagine sotto forma di angolo  tra il vettore del gradiente e la direzione delle righe della matrice:

(x, y) = argtg(Gy x,y /Gx x,y).

A differenza dei filtri di attenuazione e di miglioramento del contrasto, che non modificano l'intensità media dell'immagine, l'applicazione degli operatori di differenza solitamente produce un'immagine con un valore medio dei pixel vicino allo zero. Le differenze verticali (bordi) dell'immagine originale corrispondono ai pixel con valori di modulo elevati nell'immagine risultante. Pertanto, i filtri di differenza sono anche chiamati filtri di selezione dei limiti dell'oggetto.

Analogamente ai filtri precedenti, i filtri per altri operatori differenziali possono essere costruiti utilizzando il metodo delle differenze finite. In particolare, l’operatore differenziale di Laplace (Laplaciano) = 𝝏 2 /𝝏x 2 + 𝝏 2 /𝝏y 2, importante per molte applicazioni, può essere approssimato per immagini discrete utilizzando un filtro a matrice (una delle opzioni ):

.

Come visibile in fig. 17.3.2, come risultato dell'utilizzo del Laplaciano discreto, valori grandi in valore assoluto corrispondono a differenze di luminosità sia verticali che orizzontali. Il filtro è quindi un filtro che trova i confini di qualsiasi orientamento. È possibile trovare i confini in un'immagine applicando questo filtro e prendendo tutti i pixel il cui valore assoluto supera una determinata soglia.

Tuttavia, un tale algoritmo presenta notevoli inconvenienti. Il principale è l’incertezza nella scelta del valore di soglia. Per parti diverse dell'immagine, di solito si ottiene un risultato accettabile con valori di soglia significativamente diversi. Inoltre, i filtri differenziali sono molto sensibili al rumore dell'immagine.

Convoluzione ciclica bidimensionale. Come con i segnali unidimensionali, la convoluzione bidimensionale può essere eseguita nel dominio della frequenza spaziale utilizzando algoritmi di trasformata di Fourier veloci e moltiplicando gli spettri bidimensionali dell'immagine e del kernel del filtro. È anche ciclico e viene solitamente eseguito in una versione scorrevole. Tenendo conto della ciclicità, per calcolare un modello costante dello spettro del kernel, le dimensioni della maschera del filtro del kernel vengono raddoppiate lungo gli assi e riempite con zeri, e le stesse dimensioni della maschera vengono utilizzate per selezionare una finestra scorrevole sull'immagine, all'interno della quale viene eseguita la FFT. L'implementazione di un filtro FIR utilizzando FFT è particolarmente efficace se il filtro ha un'ampia area di riferimento.

Filtri non lineari . Nell'elaborazione delle immagini digitali, gli algoritmi non lineari basati sulle statistiche di rango sono ampiamente utilizzati per ripristinare le immagini danneggiate da vari modelli di rumore. Consentono di evitare ulteriori distorsioni dell'immagine durante la rimozione del rumore e anche di migliorare significativamente i risultati dei filtri sulle immagini con un elevato grado di rumore.

Introduciamo il concetto di M-intorno di un elemento dell'immagine A(x, y), che è centrale per questo intorno. Nel caso più semplice, il quartiere M contiene N-pixel, punti che rientrano nella maschera del filtro, incluso (o non incluso) quello centrale. I valori di questi N-elementi possono essere organizzati in una serie di variazioni V(r), ordinati in ordine ascendente (o discendente), e alcuni momenti di questa serie possono essere calcolati, ad esempio, il valore medio della luminosità m N e varianza d N . Il valore di uscita del filtro, che sostituisce il campione centrale, viene calcolato utilizzando la formula:

B(x, y) = A(x, y) + (1-)m N . (17.3.2)

Il valore del coefficiente  è associato da una certa dipendenza alle statistiche dei campioni nella finestra del filtro, ad esempio:

d N /(d N + k d S), (17.3.3)

dove d S è la dispersione del rumore sull'intera immagine o sull'intorno S per S > M e MS, k è la costante di confidenza per la dispersione degli intorni S. Come segue da questa formula, per k=1 e d N  d S, si verifica   0,5 e il valore B(x, y) = (A(x, y) + m N)/2, cioè vengono sommati equamente dai valori del campione centrale e dal valore medio dei pixel del suo quartiere M. All’aumentare dei valori di d N aumenta il contributo al risultato del valore del riferimento centrale e al diminuire aumenta il valore di m N. Il peso del contributo dei valori medi nel quartiere M può essere modificato dal valore del coefficiente k.

La scelta della funzione statistica e la natura della dipendenza del coefficiente  da essa possono essere piuttosto diverse (ad esempio, a seconda della dispersione delle differenze campionarie nel quartiere M con un campione centrale), e dipende sia dalla dimensione dell'apertura del filtro e dalla natura delle immagini e del rumore. Essenzialmente, il valore del coefficiente  dovrebbe specificare il grado di danno al campione centrale e, di conseguenza, la funzione di prestito per la sua correzione dei campioni del quartiere M.

I tipi più semplici e comuni di filtri non lineari per l'elaborazione delle immagini sono i filtri di soglia e mediani.

Filtraggio della soglia è dato, ad esempio, come segue:

B(x, y) =

Grandezza Pè la soglia di filtraggio. Se il valore del punto centrale del filtro supera il valore medio dei campioni m N nel suo quartiere M del valore di soglia, viene sostituito dal valore medio. Il valore di soglia può essere costante o funzionalmente dipendente dal valore del punto centrale.

Filtraggio mediano è definito come segue:

B(x, y) = med (M(x, y)),

quelli. il risultato del filtraggio è il valore medio dei pixel dell'intorno, la cui forma è determinata dalla maschera del filtro. Il filtraggio mediano può rimuovere efficacemente il rumore da un'immagine che influisce in modo indipendente sui singoli pixel. Ad esempio, tali interferenze sono i pixel "rotti" durante la fotografia digitale, il rumore "neve" quando alcuni pixel vengono sostituiti da pixel con la massima intensità, ecc. Il vantaggio del filtraggio mediano è che un pixel "caldo" su uno sfondo scuro verrà sostituito da uno scuro, anziché essere "sparso" nell'area.

Il filtraggio mediano ha una selettività pronunciata rispetto agli elementi dell'array, che sono una componente non monotona della sequenza di numeri all'interno dell'apertura del filtro. Allo stesso tempo, la componente monotona della sequenza filtro mediano lascia invariato. Grazie a questa funzione, i filtri medi con un'apertura selezionata in modo ottimale preservano senza distorsioni confini netti oggetti, sopprimendo il rumore non correlato o debolmente correlato e i piccoli dettagli.

Filtri estremi sono determinati secondo le regole:

B min (x, y) = min (M(x, y)),

B massimo (x, y) = massimo (M(x, y)),

quelli. il risultato del filtraggio sono i valori minimo e massimo dei pixel nella maschera del filtro. Tali filtri vengono solitamente utilizzati per le immagini binarie.

Revisione dei metodi di filtraggio e segmentazione delle immagini digitali

Fonte: Strugailo V.V. Revisione dei metodi di filtraggio e segmentazione delle immagini digitali // Scienza e educazione. Pubblicazione scientifica e tecnica elettronica. // Università tecnica statale dell'automobile e dell'autostrada di Mosca, 2012. - pp. 270-281.

introduzione

Le tecniche di elaborazione digitale consentono di trasformare le immagini per migliorarne la percezione visiva. Anche in questo ambito vengono risolti i problemi di modifica della presentazione delle immagini per garantirne l'archiviazione, la trasmissione, la visualizzazione in formato in formato elettronico e ulteriore analisi delle informazioni in essi contenute. Elaborazione digitale L’imaging è un campo della scienza in rapido sviluppo. La ricerca e lo sviluppo di metodi e algoritmi per l'elaborazione e l'analisi delle informazioni presentate sotto forma di immagini digitali è un compito molto urgente.

Questo documento fornisce una panoramica dei metodi di filtraggio e segmentazione delle immagini. Vengono forniti esempi dei metodi considerati per risolvere i problemi di miglioramento della rappresentazione visiva e di evidenziazione dei contorni degli oggetti nelle immagini.

Filtraggio delle immagini

Le immagini digitali sono suscettibili a vari tipi rumore che può derivare dal metodo di acquisizione delle immagini, dalle tecnologie di trasmissione delle informazioni e dai metodi di digitalizzazione dei dati. Il processo di eliminazione dei vari tipi di rumore nelle immagini è chiamato filtraggio.

Durante il filtraggio, le caratteristiche di luminosità di ciascun punto immagine digitale, vengono sostituiti da un altro valore di luminosità, riconosciuto come meno distorto dai disturbi. Sono presenti filtri di frequenza e spaziali.

Metodi di frequenza le trasformazioni delle immagini si basano sull'idea della trasformata di Fourier, il cui significato è rappresentare funzione originaria come somma di funzioni trigonometriche frequenze diverse, moltiplicato per i coefficienti dati. Se la funzione è periodica, tale rappresentazione è detta serie di Fourier. Altrimenti, una funzione non periodica avente un'area finita sotto il grafico può essere espressa come un integrale di funzioni trigonometriche moltiplicate per una funzione di ponderazione. Questa opzione è chiamata trasformata di Fourier e nella maggior parte dei casi problemi pratici risulta essere più utile della serie di Fourier. Una proprietà importante è che la funzione rappresentata dalla trasformata di Fourier, dopo aver eseguito delle trasformazioni su di essa, può essere ripristinata forma originale. Pertanto, questo approccio consente di elaborare la funzione dominio della frequenza, quindi tornare alla visualizzazione originale senza perdita di informazioni. La trasformata di Fourier può essere utilizzata anche per risolvere problemi di filtraggio delle immagini. Nell'applicazione pratica, l'implementazione di approcci basati sulla frequenza può essere simile ai metodi di filtraggio spaziale.

Metodi spaziali I miglioramenti dell'immagine verranno applicati alle immagini raster rappresentate come matrici bidimensionali. Il principio degli algoritmi spaziali deve essere applicato operatori speciali ad ogni punto dell'immagine originale. Gli operatori sono rettangolari o matrici quadrate chiamate maschere, kernel o finestre. Molto spesso la maschera è piccola matrice bidimensionale e i metodi di miglioramento basati su questo approccio sono spesso chiamati elaborazione delle maschere o filtraggio delle maschere.

Quando si esegue il filtraggio lineare, la risposta della maschera è specificata dalla somma dei prodotti dei pixel nell'area di copertura del filtro. Come filtro di livellamento lineare viene utilizzato un filtro di media, il cui valore di uscita è il valore medio nelle vicinanze della maschera del filtro. Un filtro simile viene utilizzato per rimuovere la grana dell'immagine causata dal rumore impulsivo. Formula generale La risposta g(x, y) di un filtro di media progettato per filtrare un'immagine f di dimensioni M×N ha la forma:

dove w(s, t) è un elemento del nucleo di convoluzione dell'immagine avente dimensioni m×n, s∈[−m/2, m/2], t∈[−n/2, n/2] sono le coordinate dell'asse del nucleo della convoluzione, ascissa e ordinata; x=0,1,2,..,M−1, y=0,1,2,..,N−1 — coordinate dell'immagine originale f.

In una forma conveniente per la rappresentazione programmatica, tale filtro può essere rappresentato come:

dov'è l'elemento della matrice dell'immagine dopo il filtraggio; — elemento dell'array del kernel di convoluzione dell'immagine, avente dimensioni m×n; — elemento della matrice dell'immagine originale.

Il filtraggio adattivo si basa su un filtro di Wiener, che è uno dei tipi di filtri lineari per l'elaborazione adattiva delle immagini locali. Se il valore della deviazione standard delle intensità dei pixel in una determinata area locale è elevato, il filtro di Wiener esegue un piccolo livellamento e, al contrario, con una deviazione minore, l'area di livellamento è più grande. Questo approccio è spesso più efficiente del filtraggio lineare convenzionale. Vantaggio filtro adattivo Un'altra cosa è che preserva i bordi e altre parti ad alta frequenza degli oggetti immagine. Tuttavia, il filtro di Wiener richiede più tempo di calcolo rispetto a filtro di linea.

Il valore di luminosità medio viene calcolato per il pixel centrale della maschera W i,j contenente i valori di luminosità dell'immagine originale nell'area locale dell'immagine coperta dalla maschera utilizzando la formula:

La variazione della maschera è:

In questo algoritmo, per ogni nuova posizione della finestra della maschera, vengono ricalcolati i valori corrispondenti.

Il livellamento del rumore è stimato attraverso la deviazione standard:

La Figura 1 mostra i risultati del filtraggio durante la sovrapposizione rumore impulsivo ad un'immagine digitale. La Figura 2 mostra i risultati del filtraggio del rumore bianco gaussiano sovrapposto a un'immagine digitale.

Figura 1 — Risultati del filtraggio del rumore impulsivo su un'immagine


Figura 2 — Risultati del filtraggio del rumore bianco su un'immagine

Metodi di segmentazione delle immagini

Il risultato finale dell'analisi dell'immagine è in gran parte determinato dalla qualità della segmentazione e da cui dipende il grado di dettaglio delle caratteristiche distinte compito specifico. Pertanto, non esiste un metodo o un algoritmo separato adatto a risolvere tutti i tipi di problemi di segmentazione; ciascun metodo presenta vantaggi e svantaggi. Nella maggior parte dei casi, uno o più algoritmi vengono selezionati e modificati per adattarsi alle condizioni specifiche del problema.

Decide la segmentazione in senso generale due compiti principali:

  • dividere l'immagine in parti per ulteriori analisi;
  • cambiando la forma della descrizione degli elementi dell'immagine, che consente di rappresentare i punti come strutture di alto livello che garantiscono l'efficienza dell'ulteriore analisi dell'immagine.

Spicca varie classificazioni metodi, ma la maggior parte di essi si basa su due le seguenti proprietà Il segnale di luminosità è discontinuità e omogeneità.

La divisione di un'immagine in parti si basa su idee basate su improvvisi cambiamenti di luminosità. La modifica della forma di descrizione degli elementi dell'immagine si basa sulla divisione dell'immagine in aree omogenee, tenendo conto di criteri preselezionati.

I metodi basati sulle discontinuità della luminosità includono il rilevamento di punti e cadute di linea. Quando vengono rilevati punti e linee utilizzando maschere speciali, viene organizzata una ricerca corrispondente. Le derivate e i gradienti delle funzioni di luminosità vengono utilizzati come metodi di rilevamento delle differenze; ​​tali metodi si basano su idee più generali.

I metodi di soglia si basano sulle idee di separazione caratteristiche significative a qualche soglia. La soglia può essere globale, ovvero definita sull'intera immagine, o locale, ovvero definita su una determinata area.

Il metodo di crescita della regione si basa sul rilevamento delle discontinuità di luminosità. Nei metodi vengono selezionati diversi punti centrali o gruppi di punti, dopodiché vengono selezionati i pixel che soddisfano date condizioni.

I metodi dell'istogramma si basano sulla selezione del minimo e valori massimi o intervalli tra gli estremi.

I metodi basati sulle trasformate di Hough si basano sul collegamento di punti tra loro determinando prima la loro appartenenza a una determinata curva di una data forma o rilevando linee rette e curve da una famiglia di determinati segmenti e archi di linee rette.

I metodi della teoria dei grafici si basano sul rilevamento e sul collegamento dei contorni rappresentando segmenti di contorni sotto forma di grafico e cercando su questo grafico percorsi corrispondenti ai contorni desiderati.

I metodi spartiacque prevedono la ricerca di linee che separano i minimi locali e i massimi dei valori di luminosità degli elementi dell'immagine.

Esistono molti metodi risolutori di problemi segmentazione, nonché approcci alla loro classificazione. Per confrontare i metodi di segmentazione delle immagini digitali, sono stati simulati metodi rappresentati come maschere. Il principio di funzionamento di tali metodi si basa sulla differenza di luminosità degli elementi e dello sfondo dell'immagine. La base matematica dei metodi risiede nel calcolo delle derivate, presentate per le immagini digitali sotto forma di approssimazioni del gradiente discreto. I metodi gradiente includono operatori che sono maschere di matrice:

  • Roberts" Crossoperator;
  • operatorePrewitt (metodo Prewitt, Compass Edge Detector);
  • Operatore Sobel.

L'operatore Roberts è facile da implementare e ha alte prestazioni, tuttavia, è altamente sensibile alle interferenze. In pratica, gli operatori Prewitt e Sobel vengono spesso utilizzati per calcolare gradienti discreti. Le maschere per operatori Prewitt sono più facili da implementare rispetto alle maschere per operatori Sobel, tuttavia con quest'ultima l'influenza del rumore degli elementi angolari della maschera è leggermente inferiore, il che è significativo quando si lavora con i derivati. Da notare che per ciascuna delle maschere la somma dei coefficienti è zero.

L'operatore di Roberts utilizza quattro valori di luminosità nell'immagine e ha la seguente forma:

dove è l'elemento matrice dell'immagine sorgente.

L'operatore Sobel utilizza otto campioni di luminosità nella regione dell'elemento analizzato:

Le matrici degli operatori di Sobel hanno la forma:

dove: E è la matrice dell'immagine originale.

Nella rappresentazione dell'immagine del software:

Il cameraman di Prewitt è simile a quello di Sobel e si differenzia da lui per la maschera. Le matrici degli operatori di Sobel hanno la forma:

I metodi basati sulla derivata del secondo ordine includono l'operatore laplaciano. Questo operatore rileva i confini nei punti in cui cambia il segno della derivata della funzione di luminosità. Ma l’operatore laplaciano è molto sensibile al rumore. Inoltre, utilizzando il modulo del Laplaciano si ottiene il raddoppio dei contorni, il che ha un effetto indesiderato e rende la segmentazione più difficile. Per ridurre l'influenza del rumore, il laplaciano viene spesso utilizzato in combinazione con lo smoothing, ad esempio utilizzando il metodo gaussiano. Questa combinazione è chiamata operatore laplaciano di gaussiano (Laplaciano di gaussiano - LoG).

La maschera dell'operatore gaussiano laplaciano viene creata utilizzando la formula:

dove σ è la deviazione standard della distribuzione gaussiana. La maschera del filtro appare così:

dove a è un parametro nell'intervallo .

Un altro metodo software comunemente implementato è Canny. In realtà, è un insieme di algoritmi applicati in sequenza. Questo approccio è resistente al rumore e solitamente fornisce risultati migliori rispetto ai metodi del gradiente. Ma poiché si tratta, in linea di principio, di un insieme di algoritmi, la prestazione lo è questo metodo inferiori agli operatori più semplici.

La Figura 3 mostra i risultati della segmentazione dell'immagine digitale utilizzando gli algoritmi considerati.

Figura 3: risultati della segmentazione delle immagini

Conclusione

Sulla base dei metodi di filtraggio implementati, si conclude che per rumore impulsivo Un filtro mediano è più adatto poiché preserva bene i confini degli elementi ed è veloce. Per rimuovere il rumore bianco migliori risultati mostrato da un filtro Wiener adattivo.

Gli algoritmi di gradiente utilizzati per evidenziare i contorni degli elementi dell'immagine sono più facili da implementare Software, tuttavia, i risultati ottenuti con il loro aiuto dipendono dalla qualità delle immagini esaminate. La qualità della selezione del contorno utilizzando il metodo Canny è superiore. Tuttavia questo algoritmo più lento, che diventa evidente a grandi quantità immagini analizzate.

Elenco della letteratura usata

1. Gonzalez R., Woods R. Elaborazione delle immagini digitali. - M.: Tekhnosfera, 2006. - 1072 p.
2. Gruzman I.S., Kirichuk V.S., Kosykh V.P., Peretyagin G.I., Spector A.A. Elaborazione digitale delle immagini in sistemi di informazione: Manuale. indennità. - Novosibirsk: Casa editrice NSTU, 2003. - 352 p.
3. Sato Yu.Elaborazione del segnale. Primo incontro. 2a edizione. - M.: Dodeka XXI, 2009. - 176 p.
4. Oppenheim A. Shafer R. Elaborazione del segnale digitale. 2a edizione. - M.: Tekhnosfera, 2007. - 856 p.
5. Lione Richard. Elaborazione del segnale digitale: 2a ed. - M.: LLC Binom-Press, 2006. - 656 p.
6. Sergienko A.B. Elaborazione del segnale digitale. - San Pietroburgo: Pietro, 2007. - 752 p.
7. Fisenko V.T., Fisenko T.Yu., Elaborazione informatica e riconoscimento delle immagini: libro di testo. indennità. - San Pietroburgo: Università statale di San Pietroburgo ITMO, 2008. - 192 p.
8. Yane B. Elaborazione delle immagini digitali. - M.: Tekhnosfera, 2007. - 584 p.
9. Shapiro L., Stockman J. Visione computerizzata. - M.: BINOM. Laboratorio della Conoscenza, 2006. - 752 p.

La varietà di approcci di miglioramento dell'immagine rientra in due categorie: metodi di elaborazione del dominio spaziale (metodi spaziali) e metodi di elaborazione del dominio della frequenza (metodi di frequenza). Il dominio spaziale si riferisce all'insieme di pixel che compongono l'immagine. La funzione di preelaborazione del dominio spaziale è scritta come

Dove F(X, ) – immagine in ingresso,

G(X, ) – immagine di output (elaborata),

H– operatore di funzione F, definito in qualche dominio ( X, ).

Le operazioni di questo tipo appartengono alla classe generale operazioni su elementi vicini. Queste operazioni sono gli strumenti principali per elaborazione delle immagini di basso livello O elaborazione delle immagini nel dominio spaziale.

L'approccio principale per determinare l'intorno di un punto ( X, ) è l'utilizzo di un'area quadrata o rettangolare di una porzione dell'immagine centrata nel punto ( X, ). Il centro di questa parte dell'immagine si sposta da pixel a pixel partendo, ad esempio, da sinistra angolo superiore. Allo stesso tempo, per ottenere G(X, ) viene applicato l'operatore per ogni posizione ( X, ). Sebbene a volte vengano utilizzate altre forme di vicinato (come un cerchio), le forme quadrate sono preferite per la loro facilità di implementazione.

Uno dei metodi di dominio spaziale più utilizzati si basa sull'uso di filtri (maschere di convoluzione, modelli, finestre). Tipicamente, una maschera filtro è un piccolo sistema bidimensionale (ad esempio, dimensione 3*3), i cui coefficienti sono selezionati in modo tale da rilevare una determinata proprietà dell'immagine (Fig. 1.5, a).

Riso. 1.5: a – maschera filtrante; b – coefficienti della maschera di filtro

Se i valori w 1 ,w 2 ,…,w 9 rappresentano coefficienti, maschere di pixel ( X, ) e i suoi otto vicini (Fig. 1.5, b), allora l'algoritmo può essere rappresentato come se eseguisse la seguente operazione su un intorno di 3*3 punti (X, ) :

Per compito di filtraggio delle immagini in senso lato si intende qualsiasi procedura di elaborazione delle immagini in cui si trova l'input alla procedura immagine raster e l'output è un'immagine raster. Tuttavia, più spesso "filtraggio" è inteso come il cosiddetto interferenza filtraggio. L'obiettivo principale del filtraggio del rumore è elaborare le immagini in modo tale che il risultato sia più adatto dal punto di vista di un'applicazione specifica. IN caso generale può essere distinto filtri lineari(filtri attenuanti, filtri di miglioramento del contrasto, filtri differenziali) e filtri non lineari(filtro mediano).

Di seguito viene fornita una breve descrizione dei metodi di filtraggio più comuni.

Filtro passa basso– indebolisce i componenti ad alta frequenza e potenzia il ruolo di quelli a bassa frequenza. La frequenza, quando applicata alle immagini, riflette la quantità di dettagli presenti nell'immagine. Bruschi cambiamenti di luminosità, interferenze e rumore sono esempi di elementi ad alta frequenza in un'immagine. Il livellamento delle immagini viene implementato utilizzando kernel successivi:

,

,

.

Filtro passa alto– indebolisce i componenti a bassa frequenza nell’immagine e migliora il ruolo di quelli ad alta frequenza. I filtri passa-alto vengono utilizzati per evidenziare dettagli come contorni, bordi o per rendere più nitida un'immagine. Ogni salto di luminosità e ogni contorno rappresenta dettagli intensi associati a frequenze elevate. L'isolamento dei componenti ad alta frequenza viene effettuato utilizzando i seguenti kernel:

,

,

.

Il cameraman di Roberts. L'operatore di Roberts è un esempio di filtro non lineare. Trasformando ciascun pixel con l'operatore incrociato di Roberts è possibile mostrare la derivata dell'immagine lungo una diagonale diversa da zero e la combinazione di queste immagini trasformate può anche essere pensata come un gradiente dai due pixel superiori ai due inferiori. L'operatore di Roberts viene utilizzato per motivi di velocità di calcolo, ma è inferiore alle alternative a causa del significativo problema della sensibilità al rumore. Produce linee più sottili rispetto ad altri metodi di evidenziazione dei bordi.

Nell'elaborazione sono coinvolti quattro pixel, posizionati come segue (Fig. 1.6).

Riso. 1.6. Pixel coinvolti nell'elaborazione da parte dell'operatore Roberts

Risposta dell'operatore Roberts:

Kernel di convoluzione dentro in questo caso sarà simile a questo:

,

.

La convoluzione per ciascun kernel viene calcolata separatamente. Come risposta di questo filtro appare la quantità

, (1.17)

Dove P E Q– risposta dei nuclei H 1 e H 2 .

A volte la quantità
.

Operatore Sobel. L'operatore Sobel viene utilizzato negli algoritmi di rilevamento dei bordi. Si tratta di un operatore differenziale discreto che calcola un valore approssimativo del gradiente di luminosità di un'immagine. Il risultato dell'applicazione dell'operatore di Sobel in ogni punto dell'immagine è il vettore del gradiente di luminosità in questo punto oppure la sua norma. Il metodo di miglioramento dei bordi che utilizza l'operatore Sobel considera due diversi nuclei di convoluzione:

Sulla base di queste convoluzioni, vengono calcolate l'ampiezza e la direzione dei bordi. La convoluzione per ciascun kernel viene calcolata separatamente. La risposta di questo filtro è il valore

, (1.19)

Dove P E Q– risposta dei nuclei H 1 e H 2 .

A volte la quantità
.

Il cameraman di Prewitt. L'operatore Prewitt funziona in modo simile all'operatore Sobel. Il rilevatore di confini Prewitt è un metodo adatto per stimare la dimensione e l'orientamento del confine. Mentre un rilevatore di gradiente differenziale richiede un calcolo dispendioso in termini di tempo delle stime dell'orientamento dalle magnitudini nelle direzioni verticale e orizzontale, il rilevatore di bordi Prewitt fornisce la direzione direttamente dal nucleo con il massimo risultato. Il metodo di miglioramento dei bordi che utilizza l'operatore Prewitt considera due diversi kernel di convoluzione:

Il risultato dell'operatore Prewitt è

, (1.21)

Dove P E Q– risposta dei nuclei H 1 e H 2 .

Operatore di Laplace. L'operatore di Laplace discreto viene spesso utilizzato nell'elaborazione delle immagini, come nelle applicazioni di estrazione dei bordi o di stima del movimento. Il laplaciano discreto è definito come la somma delle derivate seconde e viene calcolato come la somma delle differenze nei vicini del pixel centrale. Il metodo di miglioramento degli spigoli di Laplace considera diversi nuclei di convoluzione. Ecco qui alcuni di loro:

Come puoi vedere, la somma degli elementi della matrice è zero, quindi la risposta del filtro può essere negativa. In questo caso il valore della risposta viene preso modulo. Come risultato dell'elaborazione, le aree con intensità costante o crescente linearmente diventano nere e le aree con valori di intensità che cambiano rapidamente vengono evidenziate in modo brillante.

Di seguito sono riportati alcuni processi spaziali che non rientrano nella categoria della convoluzione e che possono essere utilizzati per eliminare vari tipi rumore.

Filtro della media armonica. Media armonica della serie
calcolato dalla formula

. (1.23)

Durante il processo di filtraggio, il valore del pixel dell'immagine corrente viene sostituito da
insiemi di valori per nove pixel, compresi quelli attuali e vicini.

minimo– filtrare. Durante il processo di filtraggio, il valore del pixel corrente viene sostituito dal valore minimo dei pixel vicini. Quindi, ad esempio, per un kernel di dimensione 3 avremo:

Massimo– filtrare. Durante il processo di filtraggio, il valore del pixel corrente viene sostituito dal valore massimo dei pixel vicini (simile al filtro precedente).

minimo- Massimo-filtro. Durante il processo di filtraggio, il valore del pixel corrente nell'immagine viene prima sostituito da valore minimo pixel vicini e quando si passa nuovamente al massimo.

Filtro mediano. Il filtraggio medio utilizza i valori degli elementi contenuti nella regione adiacente per determinare un nuovo valore. Il filtro dispone gli elementi della regione adiacente in ordine ordinato e seleziona il valore medio. Quindi, ad esempio, per un nucleo di dimensione 3, il valore mediano sarà il quinto:

Utilizzando metodi di elaborazione delle immagini spaziali, è possibile ottenere numerosi effetti interessanti. Elenchiamone alcuni.

Effetto rilievo. Utilizzando l'operazione di convoluzione, è possibile implementare una trasformazione che dia l'effetto di rilievo sull'immagine.

(1.24)

Immagine binaria "pseudo-mezzitoni". L'immagine originale viene elaborata utilizzando una maschera D2 o D4: se il valore del pixel è inferiore al valore proporzionale dell'elemento della maschera corrispondente, allora viene impostato a zero, altrimenti viene assegnato 255. La maschera viene applicata all'immagine senza sovrapposizioni . Maschere D2 e ​​D4:

,

.

Quando si utilizzano processi spaziali, possono sorgere le seguenti domande relative alle peculiarità dell'elaborazione dei pixel:

    Eliminazione degli effetti bordo;

    Il valore della risposta è fuori dai limiti.

Per la prima domanda sono possibili le seguenti soluzioni:

    Escludi i pixel del bordo di un'immagine dalla conversione

in questo caso immagine in uscita avrà dimensioni più piccole o dipingere i pixel di confine, ad esempio, con il nero;

    Non includere il pixel corrispondente nella somma, distribuendo uniformemente il suo peso tra gli altri pixel vicini;

    Completa (completa) l'immagine originale aggiungendo il numero richiesto di pixel lungo il bordo. Il numero di colonne da aggiungere dipende solitamente dalla dimensione del kernel. Ci sono due opzioni qui:

    • Determina i valori dei pixel al di fuori dei confini dell'immagine utilizzando l'estrapolazione. Ad esempio, considera il valore di intensità vicino alla costante al contorno o considera il gradiente di intensità vicino alla costante al confine;

      Definisci i valori dei pixel all'esterno dei confini dell'immagine utilizzando il mirroring.

Per risolvere i problemi legati al superamento dei limiti del valore, sono possibili le seguenti azioni:

    Scalare i valori ottenuti per le risposte positive del filtro;

    Se la risposta del filtro è negativa, prendere il valore assoluto (modulo) oppure ridurlo a zero.

Anche in questa sezione è opportuno dare una possibile “classificazione” del rumore presente nell’immagine:

    Rumore sale e pepe: pixel bianchi e neri casuali;

    Rumore impulsivo: pixel bianchi casuali;

    Il rumore gaussiano è costituito da fluttuazioni di intensità distribuite secondo una legge normale.

Nell'articolo parleremo sull'utilizzo della matrice di convoluzione (twist Matrix o matrice di convoluzione), con la quale è possibile creare e applicare filtri come sfocatura, nitidezza e molti altri alle immagini.

L'articolo interesserà non solo i programmatori web, ma anche tutti coloro che sono coinvolti in un modo o nell'altro elaborazione del software immagini, poiché le funzioni per lavorare con la matrice twist sono disponibili in molte lingue (di sicuro sono noti php e flash). Inoltre, l'articolo interesserà i designer che utilizzano Adobe Photoshop, poiché ha un filtro corrispondente (Filtro-Altro-Personalizzato).

Gli esempi saranno attivi Linguaggio PHP utilizzando la libreria GD. Teoria, pratica, esempi (attenzione, tante foto!)

Teoria

In termini non matematici, convoluzioneè la trasformazione di una matrice utilizzando un'altra, che viene chiamata nucleo("nucleo"). Durante l'elaborazione delle immagini, le matrici di canali RGB di pixel in coordinate rettangolari fungono da iniziali.

Il nucleo è solitamente una matrice 3x3, ma sono possibili anche matrici più grandi (5x5, 7x7, ecc.). Il nucleo contiene grado di influenza ("valore") i valori circostanti di un elemento all'elemento stesso.

La trasformazione avviene come segue. Ogni elemento della matrice originale viene moltiplicato per il valore centrale della matrice del kernel. Inoltre, gli elementi circostanti vengono moltiplicati per i valori corrispondenti (con una dimensione del kernel di 3x3 ce ne saranno 8), dopodiché i risultati vengono riassunti e accettati come valore convertito.

Ecco un semplice esempio grafico:

Il valore da convertire è evidenziato in rosso, l'ambito della matrice del kernel è evidenziato in verde.

Cosa è successo a seguito della trasformazione. I valori di tutti i pixel circostanti, inclusi autovaloreè uguale a zero, tranne che per la media superiore, dove è uguale a uno. Quindi il risultato è:

(40*0)+(42*1)+(46*0)+(46*0)+(50*0)+(55*0)+(52*0)+(56*0)+(58*0) = 42

Come visto, questa trasformazione sposta l'immagine verso il basso di 1 pixel.

Pertanto, la convoluzione in questo caso è una trasformazione dell'immagine, a seguito della quale ogni pixel del risultato è influenzato dall'area che lo circonda. Il grado di influenza di questa regione viene specificato utilizzando una matrice "kernel" o twist.

valori div e offset

Quando si elaborano le immagini, non è possibile farla franca solo con la trasformazione; è necessaria anche la normalizzazione. Cosa fare se il valore risultante è maggiore di 255 o minore di 0? Non esistono fiori del genere. Inoltre, andare oltre i confini del colore è un evento abbastanza comune.

Per normalizzare il risultato, vengono utilizzate variabili aggiuntive: div (divisore) e offset (coefficiente). Funzionano in modo molto semplice: il risultato della trasformazione viene diviso in un div e ad esso viene aggiunto l'offset.

Non è difficile indovinare che per impostazione predefinita div = 1, offset = 0 (div = 0 non può essere impostato!).

Durante la trasformazione, il div viene solitamente considerato la somma di tutti gli elementi della matrice di torsione. Questa condizione consente di prevenire distorsioni di colore se non sono necessarie.

Infatti, se l'area trasformata contiene lo stesso colore, il risultato sarà la somma degli elementi del kernel moltiplicati per questo colore. Di conseguenza, per lasciare invariato il colore, è necessario dividere il risultato della trasformazione per la stessa quantità.

Un semplice esempio: il filtro "negativo".

Prenderemo la seguente immagine come immagine iniziale:

utilizzando questo esempio sarai in grado di vedere come cambiano testo, immagini e linee grandi e piccole. Ora creiamo una matrice di torsione per ottenere l'effetto negativo:

Secondo la matrice risulta che come risultato della trasformazione tutti i colori avranno un valore negativo. Per rendere i colori negativi, è necessario impostare offset = 256, quindi i colori di tutti i pixel vengono sottratti da 256, che è un'immagine negativa:

Come farlo in PHP

Nella libreria GD in PHP c'è una funzione imageconvolution, che contiene 4 parametri. Il primo è l'ID dell'immagine. La seconda è una matrice sotto forma di un array di 3 array con 3 variabili. Il terzo e il quarto sono div e offset.

Ecco il codice che rende negativa l'immagine:

    $img = imagecreatefromjpeg("immagini/modello.jpg" ) ;

    $matrice = matrice (

    matrice (0, 0, 0),

    matrice (0, - 1, 0),

    matrice (0, 0, 0)

    convoluzioneimmagine($img, $matrice, 1, 256);

    imagejpeg($img, "images/pattern_negative.jpg", 100);

Vale la pena menzionare subito una caratteristica molto spiacevole di GD: quando si converte utilizzando imageconvolution, il canale alfa "collassa". Questo bug è stato segnalato molto tempo fa, ma per quanto ne so non è mai stato risolto. Questo non è il caso del flash; inoltre ci sono parametri aggiuntivi che sono responsabili dell'elaborazione dei bordi delle immagini quando alcuni pixel cadono. In PHP, i bordi semplicemente non vengono elaborati.

Sfoca, contrasta, rilievo

Ecco un set standard di matrici di effetti:

Si noti che per la sfocatura il coefficiente div = 9. Per una tale matrice, solo questo coefficiente non porta alla distorsione del colore. Va anche detto che esistono diverse opzioni per la sfocatura, differiscono leggermente nella forza dell'effetto.

Ed ecco le immagini risultanti:

Affilare:

Effetti "puliti".

Come puoi vedere dall'esempio precedente con la sfocatura, l'effetto si sovrappone all'immagine, ma in modo abbastanza forte. È possibile ridurre l'intensità dell'effetto sull'immagine? Si scopre che è possibile. Ma per fare ciò, è necessario modificare non il grado di influenza dei pixel circostanti, come potrebbe sembrare a prima vista, ma il numero di pixel che influenzano:

Quindi otterremo effetti che sembreranno molto più accurati:

Sfocatura della luce:

Leggero e nitido:

Rilievo leggero:

Qui vale la pena porre la domanda: come aumentare la forza dell'effetto? Purtroppo solo sovrapponendolo più volte, poiché da qualunque parte lo si guardi, viene comunque elaborata un'area di 3x3 pixel. Naturalmente, questo richiede molte risorse; per ottenere la sfocatura dei punti utilizzando la sfocatura gaussiana, a volte è necessario applicare il filtro 100-200 volte. Ciò richiede molto tempo e molte risorse.

Finalmente

Voglio dire che tu stesso puoi creare qualche effetto interessante. Per fare ciò, basta sperimentare la matrice di torsione.

La matrice di torsione può essere applicata con successo quando:

  • creando “piccole” immagini, per esempio. generazione di avatar e anteprime (la leggera sfocatura sembra particolarmente buona qui).
  • per creare “ombre” (anche se solo con un canale alfa :)
  • durante la creazione di un CAPTHCA (testo + forte contrasto o rilievo)
  • e così via. :-)

Creare una bella ombra

    * Crea una bellissima ombra

    *Attenzione! Questa è un'operazione ad alta intensità di risorse!

    * @param res $image - immagine sorgente

    * @param int $shadow_width - spessore dell'ombra (1..10, superiore non è consigliato)

    * @param int $shadow_deep - profondità del colore dell'ombra (1..20, più alto, più nero)

    * @param string $bg_color - colore di sfondo nel formato #7def34

    funzione imageaddshadow (& $immagine, $shadow_width = 4, $shadow_deep = 7, $bg_color = false)

    $w = immaginix($immagine);

    $h = immagini ($immagine) ;

    $iw = $w + 4 * $larghezza_ombra ;

    $ih = $h + 4 * $larghezza_ombra ;

    $img = imagecreatetruecolor ($iw, $ih) ;

    $ombra_profonda = 255 - $ombra_profonda * 12 ;

    $shadow = imagecolorallocate($img, $shadow_deep, $shadow_deep, $shadow_deep) ;

    se (! $bg_colore) (

    // Il colore predefinito è bianco

    $bg = immaginecolorallocate($img, 255, 255, 255);

    altro(

    lista ($r, $g, $b) = array_map ("hexdec", str_split (ltrim ($bg_color, "#"), 2));

    $bg = immaginecolorallocate ($img, $r + 1, $g + 1, $b + 1);

    // Riempi l'area con il colore di sfondo

    rettangolo riempito con immagine ($ img, 0, 0, $ iw, $ ih, $ bg);

    // Crea un'ombra

    rettangolo riempito con immagine ($img,

    1 + $larghezza_ombra,

    1 + $larghezza_ombra,

Gran parte dell'elaborazione delle immagini può essere eseguita senza ripetere l'analisi statistica descritta nella sezione precedente per ogni nuova immagine. Una quantità limitata di informazioni a priori risulta essere abbastanza sufficiente. Diciamo che conosciamo la matrice di co-occorrenza per un'immagine “ideale” e vogliamo migliorare la qualità di una versione rumorosa di questa immagine. Se gli elementi più grandi della matrice si trovano sopra o vicino alla diagonale principale, ciò significa che la maggior parte dei pixel ha lo stesso colore dei pixel vicini. Se vogliamo equalizzare l'istogramma di tale immagine, allora, come mostrato nella Sez. 3.2, si consiglia di utilizzare la regola 3. Se è necessario eliminare il rumore, la sostituzione del valore di ciascun pixel di un'immagine rumorosa con una somma ponderata dei valori dei pixel vicini porterà ad una diminuzione della variabilità di i valori dei pixel adiacenti, e otterremo un'immagine più vicina all'originale (vedi esempio 3.5). Si arriva così ad una relazione che caratterizza il rapporto tra l'immagine originale e l'immagine filtrata:

Il processo che mette in atto questa operazione è chiamato filtro lineare, in particolare filtro a media mobile, perché sostituisce il valore di ciascun pixel con una sorta di media dei valori degli elementi vicini. Se la funzione peso all'interno dell'immagine non cambia e non dipende dalle coordinate x, y, allora l'equazione (3.2) può essere riscritta nella seguente forma:

Questo processo è chiamato filtro spazialmente invariante. Questi filtri sono ampiamente utilizzati nell'elaborazione dei segnali temporali, ma l'opportunità del loro utilizzo nell'elaborazione delle immagini non è ovvia. L'equazione (3.3) viene semplificata se scritta tramite la trasformata di Fourier. Può essere visualizzato (vedi Sez.

Il risultato dell'utilizzo di un tale filtro è la soppressione di alcune frequenze e l'aumento di altre, a seconda di H(i,

Esempio 3.5. Se è necessario eliminare dall'immagine il rumore ad alta frequenza, per eseguire tale livellamento è possibile utilizzare il seguente tipo di funzione

Il risultato dell'applicazione del filtro può essere valutato confrontando le differenze nei valori dei pixel vicini prima e dopo il filtraggio. In particolare, i calcoli più semplici mostrano che

Se indichiamo con il massimo della differenza assoluta nei valori dei pixel adiacenti dell'immagine originale e con la differenza corrispondente per i pixel dell'immagine filtrata, dall'equazione (36) segue

quelli. È ovvio che questa differenza non può aumentare: l'uguaglianza si verifica solo nei casi in cui la differenza massima nei valori dei pixel è parecchie volte maggiore della differenza massima nei valori per una coppia di pixel, cioè quando esiste una qualche funzione lineare dei suoi argomenti. Altrimenti, la differenza specificata diminuirà e le aree dell'immagine assumeranno un carattere più omogeneo. Poiché di solito l'uso di un filtro così semplice risulta essere insufficiente per eliminare il rumore, è necessario ricorrere all'utilizzo di un filtro di ordine superiore. Una delle possibili implementazioni di tale filtro è quella di annoiare un filtro semplice e applicarlo ripetutamente all'immagine. Le Figure 39 e 310 mostrano i risultati del filtraggio nelle Figg. 3.10a mostra l'immagine originale ottenuta dall'immagine mostrata in Fig. 3 9, sovrapponendo a quest'ultima il rumore bianco gaussiano, in Fig. La Figura 3.10 b mostra i risultati dell'applicazione otto volte del filtro specificato dall'equazione (3 5). Non è difficile vedere che questo processo non solo porta alla rimozione del rumore ad alta frequenza, ma provoca anche la sfocatura dei bordi del filtro Immagine

Riso. 3.9 (vedi scansione) L'immagine originale utilizzata per...

Infatti, se applichiamo l'equazione (3.6) a un bordo chiaramente definito dell'immagine

si scopre che

In altre parole, la differenza di valori dei pixel adiacenti è stata dimezzata e questo ha portato naturalmente ad una diminuzione del contrasto dell'immagine

I risultati dell'applicazione di questo filtro possono essere valutati anche considerando la trasformata di Fourier della funzione. Introduciamo la notazione

Usiamo l'equazione (34)

Questa espressione può essere semplificata utilizzando l'identità

e quindi eseguendo le trasformazioni trigonometriche più semplici, di conseguenza, l'espressione (3 8) assume la seguente forma

I migliori articoli sull'argomento