Come configurare smartphone e PC. Portale informativo
  • casa
  • Windows 10
  • Metodi di segmentazione delle immagini. Studio di metodi di segmentazione su immagini modello

Metodi di segmentazione delle immagini. Studio di metodi di segmentazione su immagini modello

Quest'estate ho avuto la fortuna di svolgere uno stage estivo presso l'azienda Si vede . Mi è stato chiesto di esplorare metodi moderni, che ci consentirebbe di evidenziare la posizione degli oggetti nell'immagine. Fondamentalmente tali metodi si basano sulla segmentazione, quindi ho iniziato il mio lavoro acquisendo familiarità con quest'area visione computerizzata.
Segmentazione delle immagini - Questa è la divisione di un'immagine in molte aree che la ricoprono. La segmentazione viene utilizzata in molti settori, ad esempio nella produzione per indicare difetti durante l'assemblaggio di parti, in medicina per l'elaborazione primaria delle immagini e anche per compilare mappe del terreno da immagini satellitari. Per coloro che sono interessati a capire come funzionano tali algoritmi, benvenuti su cat. Esamineremo diversi metodi dalla libreria di visione artificiale OpenCV .

Algoritmo di segmentazione per spartiacque (WaterShed)


L'algoritmo funziona con l'immagine in funzione di due variabili f=I(x,y) , Dove x,y – coordinate pixel:


Il valore della funzione può essere l'intensità o l'entità del gradiente. Per il massimo contrasto, puoi prendere una sfumatura dall'immagine. Se lungo l'asse OZ Quando si traccia il valore assoluto del gradiente, si formano delle creste nei luoghi in cui c'è una differenza di intensità, e si formano pianure in regioni omogenee. Dopo aver trovato i minimi della funzione F , è in corso il processo di riempimento con “acqua”, che inizia dal minimo globale. Non appena il livello dell'acqua raggiunge il minimo locale successivo, inizia a riempirsi d'acqua. Quando due regioni iniziano a fondersi, viene creata una partizione per impedire la fusione delle regioni. L'acqua continuerà a salire finché le regioni non saranno separate solo da divisori costruiti artificialmente (Fig. 1).




Fig. 1. Illustrazione del processo di riempimento dell'acqua

Un tale algoritmo può essere utile se il file image piccolo numero minimi locali, ma nel caso di un gran numero di essi si verifica un'eccessiva divisione in segmenti. Ad esempio, se applichiamo direttamente l’algoritmo alla Fig. 2, otteniamo molti piccoli dettagli in Fig. 3.


Riso. 2. Immagine originale


Riso. 3. Immagine dopo la segmentazione tramite algoritmo Spartiacque

Come gestire i piccoli dettagli?

Per eliminare l'eccesso di piccoli dettagli, è possibile definire aree che saranno legate ai minimi più vicini. La partizione verrà creata solo se due regioni con marcatori vengono unite, altrimenti questi segmenti verranno uniti. Questo approccio rimuove l'effetto della segmentazione ridondante, ma richiede la pre-elaborazione dell'immagine per selezionare i marcatori che possono essere designati in modo interattivo nell'immagine in Fig. 4, 5.


Riso. 4. Immagine con pennarelli


Riso. 5. Immagine dopo la segmentazione tramite algoritmo Spartiacque utilizzando i marcatori

Se si desidera agire automaticamente senza l'intervento dell'utente è possibile utilizzare, ad esempio, la funzione trovaContorni() per evidenziare i marcatori, ma anche qui, per una migliore segmentazione, dovrebbero essere esclusi i contorni piccoli Fig. 6., ad esempio, rimuovendoli lungo la soglia lungo la lunghezza del contorno. Oppure usa l'erosione con dilatazione per rimuovere piccoli dettagli prima di evidenziare i contorni.


Riso. 6. Come contrassegni sono stati utilizzati contorni con una lunghezza superiore a una determinata soglia


Come risultato dell'algoritmo, otteniamo una maschera con un'immagine segmentata, in cui i pixel di un segmento sono etichettati con la stessa etichetta e formano un'area connessa. Lo svantaggio principale di questo algoritmo consiste nell'utilizzare una procedura di pre-elaborazione per le immagini con grande quantità minimi locali (immagini con una trama complessa e un'abbondanza di colori diversi).

Immagine opaca = imread("coins.jpg", CV_LOAD_IMAGE_COLOR); // seleziona i contorni Mat imageGray, imageBin; cvtColor(immagine, immagineGray, CV_BGR2GRAY); soglia(imageGray, imageBin, 100, 255, THRESH_BINARY); std::vettore >contorni; std::vettore gerarchia findContours(imageBin, contorni, gerarchia, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE); Marcatori tappetino(image.size(), CV_32SC1); marcatori = Scalare::all(0); int compCount = 0; for(int idx = 0; idx >= 0; idx = gerarchia, compCount++) ( drawContours(marker, contorni, idx, Scalar::all(compCount+1), -1, 8, gerarchia, INT_MAX); ) std: :vettore colorTab(contacomp); for(int i = 0; i< compCount; i++) { colorTab[i] = Vec3b(rand()&255, rand()&255, rand()&255); } watershed(image, markers); Mat wshed(markers.size(), CV_8UC3); for(int i = 0; i < markers.rows; i++) { for(int j = 0; j < markers.cols; j++) { int index = markers.at(i, j); if(indice == -1) lavato.a (i, j) = Vec3b(0, 0, 0); altrimenti se (indice == 0) lavato.at (i, j) = Vec3b(255, 255, 255); altrimenti lavato.a (i, j) = colorTab; ) ) imshow("trasformazione spartiacque", wshed); waitKey(0);

Algoritmo di segmentazione Spostamento medio

MeanShift raggruppa oggetti con caratteristiche simili. I pixel con caratteristiche simili vengono combinati in un unico segmento e l'output è un'immagine con aree omogenee.


Ad esempio, come coordinate nello spazio delle funzionalità è possibile selezionare le coordinate dei pixel (x, y) e componenti RGB pixel. Tracciando i pixel nello spazio delle caratteristiche, puoi vedere i grumi in determinati punti.

Riso. 7. (a) Pixel nello spazio delle funzionalità 2D. (b) I pixel che arrivano allo stesso massimo locale vengono colorati dello stesso colore. (c) - funzione di densità, i massimi corrispondono ai luoghi di massima concentrazione di pixel. La foto è tratta dall'articolo.

Per facilitare la descrizione delle condensazioni di punti, introduciamo funzione di densità :
– vettore delle caratteristiche io -esimo pixel, D - numero di segni, N - numero di pixel, H - il parametro responsabile della scorrevolezza è il nocciolo. I massimi della funzione si trovano nei punti di condensazione dei pixel dell'immagine nello spazio delle caratteristiche. I pixel appartenenti allo stesso massimo locale vengono combinati in un unico segmento. Si scopre che per trovare a quale centro di concentrazione appartiene un pixel, è necessario procedere lungo il gradiente per trovare il massimo locale più vicino.

Stima del gradiente dalla funzione di densità

Il vettore di spostamento medio può essere utilizzato per stimare il gradiente della funzione di densità
Il kernel Epanechnikov viene utilizzato come kernel in OpenCV:


- questo è il volume D sfera bidimensionale con raggio unitario.


significa che la somma non va su tutti i pixel, ma solo su quelli che cadono in una sfera con un raggio H centrato nel punto in cui punta il vettore nello spazio delle caratteristiche. Questo è stato introdotto appositamente per ridurre il numero di calcoli. - volume D sfera bidimensionale con raggio H. È possibile impostare separatamente il raggio per le coordinate spaziali e separatamente il raggio nello spazio colore. - il numero di pixel che cadono nella sfera. Misurare può essere considerato come una stima del valore nella regione.


Pertanto, per percorrere il gradiente è sufficiente calcolarne il valore - vettore di spostamento medio. Va ricordato che se si seleziona un kernel diverso, il vettore di spostamento medio apparirà diverso.


Quando si scelgono le coordinate dei pixel e l'intensità del colore come caratteristiche, i pixel con colori simili e situati uno vicino all'altro verranno combinati in un unico segmento. Di conseguenza, se si sceglie un vettore di caratteristiche diverso, i pixel verranno combinati in segmenti utilizzandolo. Ad esempio, se rimuoviamo le coordinate dalle caratteristiche, il cielo e il lago verranno considerati un segmento, poiché i pixel di questi oggetti nello spazio delle caratteristiche cadranno in un massimo locale.

Se l'oggetto che vogliamo selezionare è costituito da aree che differiscono notevolmente nel colore, allora Spostamento medio non sarà in grado di combinare queste regioni in una sola e il nostro oggetto sarà composto da diversi segmenti. Ma è bello affrontare un oggetto di colore uniforme su uno sfondo eterogeneo. Di più Spostamento medio utilizzato quando si implementa un algoritmo per tracciare oggetti in movimento.

Codice di esempio per eseguire l'algoritmo:

Immagine opaca = imread("strawberry.jpg", CV_LOAD_IMAGE_COLOR); Segmento immagine opaco; int raggiospaziale = 35; int colorRadius = 60; int PyramidLevels = 3; pyrMeanShiftFiltering (immagine, segmento immagine, raggio spaziale, raggio colore, livelli piramidali); imshow("MeanShift", imageSegment); waitKey(0);
Risultato:


Riso. 8. Immagine originale


Riso. 9. Dopo la segmentazione da parte dell'algoritmo Spostamento medio

Algoritmo di segmentazione Riempimento

Usando Riempimento(metodo di riempimento o “allagamento”) è possibile selezionare regioni di colore uniforme. Per fare ciò, selezionare il pixel iniziale e impostare l'intervallo per cambiare il colore dei pixel vicini rispetto a quello originale. L'intervallo può anche essere asimmetrico. L'algoritmo combinerà i pixel in un segmento (riempiendoli con lo stesso colore) se rientrano nell'intervallo specificato. L'output sarà un segmento riempito con un determinato colore e la sua area in pixel.

Questo algoritmo può essere utile per riempire un'area con lievi differenze di colore con uno sfondo uniforme. Un caso d'uso Riempimento Potrebbe essere possibile identificare i bordi danneggiati di un oggetto. Ad esempio, se, riempiendo aree omogenee con un determinato colore, l’algoritmo riempie anche le regioni vicine, allora l’integrità del confine tra queste aree è stata violata. Nell'immagine qui sotto puoi vedere che l'integrità dei confini delle aree riempite è preservata:

Riso. 10, 11. L'immagine originale e il risultato dopo aver riempito diverse aree

E le seguenti immagini mostrano l'opzione di lavoro Riempimento se uno dei bordi dell'immagine precedente è danneggiato.


Riso. 12, 13. Illustrazione dell'opera Riempimento quando l'integrità del confine tra le aree riempite viene violata

Codice di esempio per eseguire l'algoritmo:

Immagine opaca = imread("cherry.jpg", CV_LOAD_IMAGE_COLOR); Punto inizialePunto; puntoinizio.x = immagine.cols/2; puntoinizio.y = immagine.righe/2; Scalare loDiff(20, 20, 255); Diff su scalare(5, 5, 255); FillColor scalare(0, 0, 255); int vicini = 8; Dominio rettangolo; int area = FloodFill(image, startPoint, fillColor, &domain, loDiff, upDiff, neighbors); rettangolo(immagine, dominio, Scalare(255, 0, 0)); imshow("segmentazione FloodFill", immagine); waitKey(0);
Ad una variabile la zona Verrà registrato il numero di pixel “riempiti”.
Risultato:


Algoritmo di segmentazione GrabCut

Si tratta di un algoritmo interattivo di selezione degli oggetti, sviluppato come alternativa più conveniente al lazo magnetico (per selezionare un oggetto l'utente doveva tracciarne il contorno con il mouse). Perché l'algoritmo funzioni è sufficiente racchiudere l'oggetto insieme a parte dello sfondo in un rettangolo (afferra). L'oggetto verrà segmentato automaticamente (tagliato).


La segmentazione può risultare difficile se sono presenti colori all'interno del riquadro di delimitazione grandi quantità non solo nell'oggetto, ma anche nello sfondo. In questo caso, è possibile aggiungere ulteriori segni di oggetto (linea rossa) e di sfondo (linea blu).


Consideriamo l'idea dell'algoritmo. La base è l'algoritmo di segmentazione interattiva GraphCut, in cui l'utente deve inserire dei marcatori sullo sfondo e sull'oggetto. L'immagine viene trattata come un array .Z - valori di intensità dei pixel, N -numero totale di pixel. Per separare un oggetto dallo sfondo, l'algoritmo determina i valori degli elementi dell'array di trasparenza, e può assumere due valori se = 0 , allora il pixel appartiene allo sfondo se = 1 , quindi l'oggetto. Parametro interno contiene un istogramma della distribuzione dell'intensità primo piano e un istogramma di sfondo:
.
Il compito della segmentazione è trovare incognite. Si considera la funzione energetica:

Inoltre, l'energia minima corrisponde alla migliore segmentazione.


V(a,z) - il termine è responsabile della connessione tra i pixel. La somma vale per tutte le coppie di pixel vicini, dis(m,n) - Distanza euclidea. è responsabile della partecipazione di coppie di pixel al totale se un n = un m , questa coppia non verrà presa in considerazione.
- è responsabile della qualità della segmentazione, vale a dire separazione dell'oggetto dallo sfondo.

Avendo trovato il minimo globale della funzione energia E , otteniamo un array di trasparenza. Per minimizzare la funzione energia, l'immagine viene descritta come un grafico e viene ricercato il taglio minimo del grafico. A differenza di GraphCut nell'algoritmo GrabCut i pixel sono considerati nello spazio RGB, quindi per descrivere le statistiche del colore viene utilizzato un modello di miscela gaussiana (GMM). Operazione dell'algoritmo GrabCut puoi vedere eseguendo l'esempio OpenCV

Uno dei compiti principali dell'elaborazione e dell'analisi delle immagini è la segmentazione, ad es. dividere un'immagine in aree per le quali viene soddisfatto un certo criterio di omogeneità, ad esempio evidenziando aree con approssimativamente la stessa luminosità nell'immagine. Il concetto di area dell'immagine viene utilizzato per definire un gruppo coerente di elementi dell'immagine che hanno un certo caratteristica comune(proprietà).
Uno dei principali e modi semplici- questa è la costruzione della segmentazione utilizzando una soglia. Una soglia è un segno (proprietà) che aiuta a dividere il segnale desiderato in classi. L'operazione di divisione della soglia consiste nel confrontare il valore di luminosità di ciascun pixel nell'immagine dato valore soglia.
Binarizzazione

L'operazione di soglia che risulta in un'immagine binaria è chiamata binarizzazione. Lo scopo dell'operazione di binarizzazione è ridurre radicalmente la quantità di informazioni contenute nell'immagine. Nel processo di binarizzazione, viene convertita l'immagine mezzitoni originale, che ha un certo numero di livelli di luminosità immagine in bianco e nero, i cui pixel hanno solo due valori: 0 e 1

La soglia di un'immagine può essere eseguita in diversi modi.

Binarizzazione con soglia inferiore
Binarizzazione con soglia inferiore
La binarizzazione con soglia inferiore è l'operazione più semplice, che utilizza un solo valore di soglia:

Tutti i valori diventano 1 invece del criterio, in in questo caso 255 (bianco) e tutti i valori dei pixel (ampiezze) superiori alla soglia t - 0 (nero).

Binarizzazione con soglia superiore
Talvolta si può utilizzare una variante del primo metodo, che produce un negativo dell'immagine ottenuta tramite il processo di binarizzazione. Operazione di binarizzazione con soglia superiore:

Binarizzazione con doppio vincolo
Per evidenziare aree in cui i valori di luminosità dei pixel possono variare entro un intervallo noto, viene introdotta la binarizzazione con doppia limitazione (t 1
Sono possibili anche altre variazioni con soglie, nelle quali viene fatta passare solo una parte dei dati (filtro della banda media).

Soglia incompleta
Questa trasformazione produce un'immagine che potrebbe essere più semplice da analizzare ulteriormente perché diventa priva di sfondo con tutti i dettagli presenti nell'immagine originale.

Trasformazione della soglia multilivello
Questa operazione forma un'immagine che non è binaria, ma è composta da segmenti con luminosità diverse.

Per quanto riguarda la binarizzazione, essenzialmente è tutto. Sebbene possiamo aggiungere che ce n'è uno globale, che viene utilizzato per l'intera immagine, e ce n'è anche uno locale, che cattura parte dell'immagine (immagine).

Soglia locale
Metodo Otsa
Il metodo utilizza un istogramma della distribuzione dei valori di luminosità dei pixel dell'immagine raster. Un istogramma viene costruito utilizzando i valori p i = n i /N, dove N è il numero totale di pixel nell'immagine, n i è il numero di pixel con livello di luminosità i. L'intervallo di luminosità è diviso in due classi utilizzando la soglia del livello di luminosità k,k - un valore intero da 0 a L. Ciascuna classe corrisponde a frequenze relative ω 0 ω 1:

Livelli medi per ciascuna delle due classi di immagini:
Successivamente, viene calcolato il valore massimo per valutare la qualità della divisione dell'immagine in due parti:
dove (σ cl)2=ω 0 ω 1 (μ 1 -μ 0) 2 è la varianza interclasse e (σ totale) 2 è la varianza totale per l'intera immagine.

Soglia basata sul gradiente di luminosità dell'immagine
Supponiamo che l'immagine analizzata possa essere divisa in due classi: oggetti e sfondo. L'algoritmo per il calcolo del valore di soglia è composto dai seguenti 2 passaggi:
1. Per ogni pixel viene determinato il modulo del gradiente di luminosità
immagini

2. Calcolo della soglia:
Totale
Ho condiviso volentieri con te ciò che ho scoperto; in futuro, se ci riuscirò e avrò tempo, proverò a implementare alcuni algoritmi. Questa è solo una piccola parte di tutto ciò che esiste oggi, ma sono felice di condividere anche questa.
Grazie per l'attenzione.

Inviare il tuo buon lavoro nella knowledge base è semplice. Utilizza il modulo sottostante

Studenti, dottorandi, giovani scienziati che utilizzano la base di conoscenze nei loro studi e nel loro lavoro ti saranno molto grati.

Pubblicato su http://www.allbest.ru/

Ministero dell'Istruzione e della Scienza della Federazione Russa

Università statale di ingegneria radiofonica di Ryazan

Dipartimento IIBMT

Lavoro del corso

Metodi di elaborazione delle immagini. Segmentazione

Completato l'art. gr. 432M:

Aleshin S.I.

Controllato dall'Ass. Dipartimento IIBMT:

Kaplan M.B.

Rjazan'2014

introduzione

1. Presentazione delle immagini

3. Formati di immagine

4. Tipi di immagini

5.1 Modifica del contrasto

5.2 Attenuazione del rumore

5.3 Enfatizzare i confini

5.4 Filtraggio mediano

5.5 Segmentazione delle immagini

5.5.3 Delineare

5.5.7 Metodi di taglio del grafico

6. Descrizione delle funzioni

7. Test degli algoritmi

Conclusione

Applicazione

introduzione

A metà del XX secolo, l’elaborazione delle immagini era per lo più analogica ed eseguita da dispositivi ottici. Tali tecniche ottiche sono ancora importanti oggi, in settori come l’olografia. Tuttavia, con il drammatico aumento delle prestazioni dei computer, questi metodi sono stati sempre più sostituiti da metodi di elaborazione delle immagini digitali. I metodi di elaborazione delle immagini digitali sono generalmente più accurati, affidabili, flessibili e più facili da implementare rispetto ai metodi analogici. L'elaborazione delle immagini digitali fa ampio uso di hardware specializzato come processori di pipeline di istruzioni e sistemi multiprocessore. Ciò è particolarmente vero per i sistemi di elaborazione video. L'elaborazione delle immagini viene eseguita anche utilizzando software di matematica per computer, ad esempio MATLAB, Mathcad, Maple, Mathematica, ecc. Per questo, utilizzano sia strumenti di base che pacchetti di estensione di elaborazione delle immagini.

L'interesse per i metodi di elaborazione delle immagini digitali deriva da due aree principali della sua applicazione, ovvero il miglioramento delle immagini per migliorare la percezione visiva umana e l'elaborazione delle immagini per l'archiviazione, la trasmissione e la presentazione in sistemi di visione artificiale autonomi.

Uno dei metodi più complessi di elaborazione delle immagini digitali è la segmentazione delle immagini. La segmentazione è il processo di divisione di un'immagine digitale in più segmenti che differiscono tra loro per caratteristiche elementari, come luminosità, colore, consistenza, forma. Lo scopo della segmentazione è semplificare e modificare la rappresentazione di un'immagine in modo che sia più semplice e facile da analizzare. La selezione errata dei segmenti di un'immagine può in definitiva compromettere la qualità del riconoscimento e addirittura renderlo impossibile. Pertanto, il compito della segmentazione è estremamente importante e molto rilevante.

Esistono molti metodi di segmentazione delle immagini. Il risultato finale è spesso determinato dall'accuratezza della segmentazione, quindi quando si sceglie un particolare metodo di segmentazione è necessario prestare molta attenzione all'affidabilità dell'algoritmo. Tuttavia, non esiste un approccio unico e generalmente accettato che possa essere alla base della maggior parte degli algoritmi. Inoltre, non esiste un unico algoritmo che consenta una segmentazione accettabile per qualsiasi immagine. Questa è una delle difficoltà della segmentazione ed è la ragione del gran numero di approcci diversi per risolvere questi problemi di elaborazione delle immagini.

Nonostante la rilevanza di quest'area tematica, sono stati scritti relativamente pochi libri che affrontano sia i fondamenti teorici che gli aspetti software della risoluzione dei problemi di base della segmentazione delle immagini.

Questo documento descrive i metodi di base dell'elaborazione delle immagini digitali. Particolare attenzione è rivolta ai metodi di segmentazione delle immagini. Un programma per uno dei metodi di segmentazione è stato implementato utilizzando il pacchetto applicativo MatLAB.

1. Presentazione delle immagini

Le questioni fondamentali nella teoria dell'elaborazione delle immagini sono questioni relative a: formazione, input, rappresentazione in un computer e visualizzazione. La forma di una superficie può essere descritta come una funzione della distanza F(x, y) dalla superficie a un punto dell'immagine con coordinate x e y. Considerando che la luminosità di un punto dell'immagine dipende esclusivamente dalla luminosità della superficie corrispondente, possiamo supporre che l'informazione visiva rifletta con una certa precisione lo stato di luminosità o trasparenza di ciascun punto. Allora un'immagine è intesa come una funzione limitata di due variabili spaziali f(x, y), definita su un piano rettangolare limitato Oxy e avente un certo insieme dei suoi valori. Ad esempio, una fotografia in bianco e nero può essere rappresentata come f(x, y)?0, dove 0?x?a, 0?y?b e f(x, y) sono la luminosità (a volte chiamata densità ottica o bianchezza ) dell'immagine nel punto (x, y); a - larghezza del telaio, b - altezza del telaio.

Poiché la memoria digitale di un computer è in grado di memorizzare solo matrici di dati, l'immagine viene prima convertita in una forma numerica (matrice). Le immagini vengono immesse nella memoria del computer utilizzando sensori video. Il sensore video converte la distribuzione ottica della luminosità dell'immagine in segnali elettrici e quindi in codici digitali. Poiché l'immagine è una funzione di due variabili spaziali xey e il segnale elettrico è una funzione di una variabile t (tempo), per la conversione viene utilizzata una scansione. Ad esempio, quando si utilizza una telecamera, l'immagine viene letta riga per riga e all'interno di ciascuna riga la dipendenza della luminosità dalla coordinata spaziale x viene convertita in una dipendenza proporzionale dell'ampiezza del segnale elettrico dal tempo t. Il passaggio dalla fine della riga precedente all'inizio di quella successiva avviene quasi istantaneamente.

L'immissione di immagini in un computer implica inevitabilmente il campionamento delle immagini lungo le coordinate spaziali xey e la quantizzazione del valore di luminosità in ciascun punto discreto. La discretizzazione si ottiene utilizzando una griglia di coordinate formata da linee parallele agli assi xey di un sistema di coordinate cartesiane. In ciascun nodo di tale reticolo viene effettuata una lettura della luminosità o trasparenza del portatore delle informazioni percepite visivamente, che viene poi quantizzato e presentato nella memoria del computer. L'elemento dell'immagine ottenuto nel processo di campionamento dell'immagine è chiamato pixel. Per una rappresentazione di alta qualità di un'immagine mezzitoni sono sufficienti 28 = 256 livelli di quantizzazione, ovvero 1 pixel di un'immagine è codificato con 1 byte di informazioni.

Le caratteristiche principali delle immagini sono:

1. Dimensioni dell'immagine;

2. Profondità del colore;

3. Autorizzazione.

2. Codifica delle immagini a colori

Il colore è un fenomeno che risulta dall'interazione tra la luce, un oggetto e un dispositivo (osservatore).

È stato sperimentalmente stabilito che qualsiasi colore può essere rappresentato come la somma di determinate quantità di tre colori linearmente indipendenti.

Tre colori linearmente indipendenti sono detti colori primari.

Definiscono un sistema di coordinate di colore (CCS) o una combinazione di colori, ad es. un insieme di colori primari per ottenere i restanti colori.

Gli schemi di colore si dividono in due varietà: schemi di colore dalla luce emessa e dalla luce riflessa.

Sistema RGB.

I suoi colori primari sono il rosso con una lunghezza d'onda di 700 nm, il verde con una lunghezza d'onda di 546,1 nm e il blu con una lunghezza d'onda di 435,8 nm. Il sistema RGB è additivo.

In questo caso, questo o quel colore si ottiene aggiungendo i colori primari.

Sistema CMYK.

Questo sistema viene utilizzato per formare colori di oggetti colorati non luminosi che assorbono parte dello spettro della luce bianca illuminata e riflettono il resto della radiazione.

Il sistema CMYK è la base per la stampa a colori.

Si basa sul modello sottrattivo CMY (ciano - ciano, magenta - magenta, giallo), un modello di sottrazione del colore. Ci sono ancora tre colori primari qui.

Per migliorare la qualità dell'immagine stampata, al sistema è stato aggiunto il colore nero.

Sistema HSB.

Questo sistema si basa sull'uso di Tonalità o Tonalità, Saturazione e Luminosità. La tonalità caratterizza una specifica tonalità di colore, la saturazione - la sua intensità relativa, la luminosità del colore - la quantità di tinta nera per produrre un'immagine più scura.

Una variante di questo sistema è lo schema HSL.

3. Formati di immagine

Oggi sono in uso numerosi formati di file grafici diversi. I formati più utilizzati sono TIFF, GIF, JPEG, PNG e BMP.

Il formato TIFF (Tagget Image Format) è uno dei formati più affidabili e versatili per l'archiviazione di immagini a colori scansionate di alta qualità. Può utilizzare la compressione utilizzando l'algoritmo LZW, ad es. si riferisce a formati di archiviazione di immagini senza perdita di dati.

Il formato GIF (Graphics Interchange Format) ha una tavolozza di 256 colori e utilizza l'algoritmo LZW senza perdita di dati per la compressione. Se il numero originale di colori è superiore a 256, alcune informazioni sui colori andranno perse.

Il formato JPEG (Join Photographers Expert Group) si basa sull'omonimo algoritmo di compressione delle immagini. È un algoritmo di compressione con perdita ed è progettato per archiviare immagini a colori con un rapporto di compressione elevato. Quando si utilizza il formato, è possibile controllare il parametro di qualità da 0 (compressione massima) a 100 (qualità massima). Il rapporto di compressione, a seconda della qualità, va da 10 a 1000. Questo formato viene spesso utilizzato per archiviare immagini fotografiche a colori che non sono destinate a un'ulteriore elaborazione.

Il formato PNG è un formato raster per la memorizzazione di informazioni grafiche che utilizza la compressione senza perdita utilizzando l'algoritmo Deflate. Il formato PNG è progettato per sostituire il formato GIF più vecchio e più semplice e, in una certa misura, per sostituire il formato TIFF molto più complesso. Il formato PNG è posizionato principalmente per l'uso su Internet e per l'editing grafico. Presenta i seguenti principali vantaggi rispetto al GIF: un numero quasi illimitato di colori nell'immagine; supporto opzionale del canale alfa; possibilità di correzione gamma; scansione interlacciata bidimensionale.

Il formato BMP (BitMaP) è uno dei formati raster nativi del sistema operativo Windows. È adatto per memorizzare immagini sia in forma indicizzata con una tavolozza fino a 256 colori, sia sotto forma di immagini RGB a colori con una profondità di colore di 24 bit. È possibile utilizzare l'algoritmo di compressione RLE.

4. Tipi di immagini

4.1 Immagine a due livelli (o monocromatica).

In questo caso, tutti i pixel possono avere solo due valori, che solitamente vengono chiamati nero (uno binario, o colore principale) e bianco (zero binario, o colore di sfondo).

Ogni pixel in tale immagine è rappresentato da un bit, quindi è il tipo di immagine più semplice.

1. Immagine mezzitoni. Tale immagine con una scala di 2n livelli è composta da n strati.

2. Immagine a colori. Tale immagine è descritta in uno dei formati presentati sopra.

3. Immagine a tono continuo. Questo tipo di immagine può avere molti colori (o mezzitoni) simili. Quando i pixel vicini differiscono solo di uno, è quasi impossibile per l'occhio distinguerne i colori. Di conseguenza, tali immagini possono contenere aree in cui il colore sembra cambiare continuamente all'occhio. In questo caso, un pixel è rappresentato da un numero elevato (nel caso dei mezzitoni) o da tre componenti (nel caso di un'immagine a colori). Le immagini a tono continuo sono naturali o naturali (in contrapposizione a quelle create dall'uomo e artificiali); Solitamente si ottengono scattando con una fotocamera digitale o scansionando fotografie o disegni.

4. Immagine a toni discreti (chiamata anche sintetica). Di solito, questa immagine è ottenuta artificialmente. Potrebbe avere solo pochi colori o molti colori, ma è priva del rumore e delle imperfezioni di un'immagine naturale. Esempi di tali immagini includono fotografie di oggetti, macchine o meccanismi creati dall'uomo, pagine di testo, mappe, disegni o immagini sullo schermo di un computer. (Non tutte le immagini artificiali avranno necessariamente toni discreti. Un'immagine generata dal computer destinata ad apparire naturale avrà toni continui nonostante la sua origine artificiale.) Gli oggetti artificiali, il testo e le linee tracciate hanno forme, confini ben definiti. Contrastano fortemente con il resto dell'immagine (sfondo). I pixel adiacenti di un'immagine a toni discreti sono spesso singoli o variano notevolmente in valore. Tali immagini sono scarsamente compresse utilizzando metodi con perdita, poiché la distorsione di pochi pixel di una lettera la rende illeggibile, trasformando lo stile abituale in uno stile completamente indistinguibile. Le immagini a toni discreti di solito presentano molta ridondanza. Molti dei suoi frammenti si ripetono più volte in punti diversi dell'immagine.

5. Immagini simili a cartoni animati. Si tratta di immagini a colori che contengono ampie aree dello stesso colore. In questo caso, le aree adiacenti possono variare notevolmente di colore.

5. Metodi di elaborazione delle immagini

L’analisi preliminare delle immagini ci permette di concludere che:

In primo luogo, la maggior parte delle immagini, nel processo della loro formazione (scansioni fotografiche, ecc.), sono influenzate da una serie di fattori negativi (vibrazioni della fotocamera, movimento irregolare dell'elemento di scansione, ecc.), che portano alla sfocatura, alla comparsa di immagini basse -aree di contrasto e rumorose, ecc.

In secondo luogo, la stragrande maggioranza dei metodi si basa sull’identificazione degli oggetti nell’immagine e sulla loro ulteriore analisi.

Prima di essere analizzata, quindi, l'immagine deve passare attraverso la fase di preparazione, che consiste nell'effettuare operazioni di miglioramento della qualità visiva (aumento del contrasto, eliminazione delle sfocature, enfatizzazione dei bordi, filtraggio) e operazioni di preparazione grafica (segmentazione, evidenziazione dei contorni) dell'immagine. l'immagine.

5.1 Modifica del contrasto

Un contrasto debole è solitamente causato da una piccola gamma dinamica di variazioni di luminosità o da una forte non linearità nella trasmissione dei livelli di luminosità. Il metodo di contrasto più semplice è la mappatura funzionale della gradazione di luminosità da fij a gij, ovvero gij = R(fij). In pratica, molto spesso vengono utilizzate mappature funzionali lineari. Se, a causa di un'illuminazione non uniforme durante la fotografia o lo scatto di fotografie, si verifica una situazione in cui diverse aree dell'immagine presentano un contrasto diverso. In questo caso, vengono utilizzati algoritmi di contrasto adattivi per modificare il contrasto. Un esempio è l'algoritmo di miglioramento del contrasto locale. Studi sperimentali hanno confermato l'elevata efficienza dell'algoritmo se l'immagine contiene aree con contrasti chiaramente troppo alti o bassi.

L'essenza dell'algoritmo è che l'immagine viene considerata come un insieme di un certo numero di aree locali e queste aree vengono elaborate tenendo conto delle loro caratteristiche. L'elaborazione viene eseguita nella seguente sequenza: il fattore di guadagno delle fette di densità p viene calcolato separatamente per ciascuna area locale dell'immagine. E ogni pixel dell'immagine viene elaborato. Se p è uguale a uno, non viene eseguita alcuna azione su un'area locale dell'immagine (se p è diverso da uno, il contrasto dell'area locale viene aumentato). Inizialmente viene calcolato il contrasto nel punto analizzato rispetto al quartiere più vicino. Quindi il valore di contrasto relativo viene sommato all'unità e il valore risultante viene accettato nell'algoritmo come fattore di guadagno p, quindi calcolato utilizzando la formula:

contrasto del programma di segmentazione delle immagini

dove è il nuovo valore di luminosità, è la luminosità attuale dell'immagine elaborata, è il valore di luminosità massimo richiesto dell'immagine elaborata.

5.2 Attenuazione del rumore

Le immagini sono soggette a rumore additivo e impulsivo durante la fase di digitalizzazione. Il rumore additivo è un segnale casuale che si aggiunge a quello utile all'uscita del sistema; nel caso in esame, il rumore additivo si verifica a causa della granulosità del film. Il rumore impulsivo, a differenza del rumore additivo, è caratterizzato dal suo impatto sul segnale utile solo in singoli punti casuali (il valore del segnale risultante in questi punti assume un valore casuale). Il rumore impulsivo è tipico dei sistemi di trasmissione e memorizzazione di immagini digitali. Pertanto, nel processo di preparazione dell'immagine, sorge il problema della soppressione del rumore.

Il metodo più semplice per attenuare il rumore in un'immagine è lo smussamento, ad es. sostituendo il valore di luminosità di ciascun elemento con il valore medio riscontrato nelle sue vicinanze:

dov'è l'insieme dei punti appartenenti all'intorno del punto (compreso il punto stesso); - numero di punti nel quartiere.

Il metodo considerato elimina efficacemente il rumore additivo e impulsivo in ciascun elemento dell'immagine.

5.3 Enfatizzare i confini

Le tecniche di livellamento delle immagini possono rimuovere il rumore in modo molto efficace. Uno svantaggio significativo degli algoritmi di anti-aliasing è la sfocatura dell'immagine (ovvero una diminuzione della chiarezza degli elementi del contorno) e la quantità di sfocatura è proporzionale alla dimensione della maschera utilizzata per lo smussamento. Per un'analisi univoca dell'immagine, soprattutto quando si calcolano le caratteristiche geometriche degli elementi strutturali, è molto importante rimuovere la sfocatura dai contorni degli oggetti nell'immagine, cioè aumentare la differenza tra le gradazioni di luminosità degli elementi del contorno dell'oggetto e elementi di sfondo vicini. In questo caso, durante l'elaborazione delle immagini, vengono utilizzati metodi per enfatizzare i contorni.

In genere, il miglioramento dei bordi viene eseguito utilizzando il filtraggio spaziale ad alta frequenza. Le caratteristiche dei filtri sono specificate come una maschera in cui il valore medio deve essere uguale a zero.

Un altro metodo per enfatizzare i confini è la cosiddetta differenziazione statica. In questo metodo, il valore di luminosità di ciascun elemento viene diviso per una stima statistica della deviazione standard, ovvero (la deviazione standard viene calcolata in alcune vicinanze dell'elemento).

5.4 Filtraggio mediano

Il filtraggio mediano si riferisce a metodi di elaborazione delle immagini non lineari e presenta i seguenti vantaggi rispetto al filtraggio lineare (procedura di livellamento classica): preserva i cambiamenti netti (confini); attenua efficacemente il rumore impulsivo; non cambia la luminosità dello sfondo.

Il filtraggio mediano viene effettuato spostando un'apertura (maschera) lungo un'immagine discreta e sostituendo il valore dell'elemento centrale della maschera con il valore mediano (valore medio della sequenza ordinata) degli elementi originali all'interno dell'apertura. In generale, l'apertura può avere un'ampia varietà di forme, ma in pratica l'apertura ha dimensioni quadrate

5.5 Segmentazione delle immagini

Per segmentazione dell'immagine si intende il processo di divisione in parti componenti che hanno un significato significativo: oggetti, i loro confini o altri frammenti informativi, caratteristiche geometriche caratteristiche, ecc. Nel caso dell'automazione dei metodi di acquisizione dell'immagine, la segmentazione deve essere considerata come il principale fase iniziale dell'analisi, che consiste nella costruzione di una descrizione formale dell'immagine, la cui qualità determina in gran parte il successo della risoluzione del problema del riconoscimento e dell'interpretazione degli oggetti.

In generale, la segmentazione è l'operazione di partizionamento di un insieme finito di un piano su cui è definita la funzione dell'immagine originale in sottoinsiemi connessi non vuoti secondo alcuni predicati definiti sull'insieme e assumendo valori veri quando qualsiasi coppia di i punti di ciascun sottoinsieme soddisfano alcuni criteri di omogeneità (ad esempio, criterio di omogeneità basato su una valutazione della differenza massima di luminosità di un singolo pixel e il valore di luminosità medio calcolato sull'area corrispondente).

5.5.1 Metodi di segmentazione delle soglie

La soglia è uno dei metodi principali per la segmentazione delle immagini grazie alle sue proprietà intuitive. Questo metodo si concentra sull'elaborazione delle immagini, le cui singole aree omogenee differiscono per la luminosità media. Il metodo più comune di segmentazione mediante soglia è la segmentazione binaria, ovvero quando abbiamo a disposizione due tipologie di aree omogenee.

In questo caso, l'immagine viene elaborata pixel per pixel e la conversione di ciascun pixel dell'immagine in ingresso in quella in uscita è determinata dalla relazione:

dove è un parametro di elaborazione chiamato soglia e sono i livelli di luminosità in uscita. L'elaborazione tramite pixel, la cui posizione nell'immagine non gioca alcun ruolo, è chiamata elaborazione punti. I livelli svolgono il ruolo di segni. Servono per determinare di che tipo un dato punto è classificato come: H0 o H1. Oppure dicono che H0 è costituito da punti di sfondo e H1 da punti di interesse. Di norma, i livelli corrispondono ai livelli di bianco e nero. Chiameremo le classi H1 (ovvero la classe di interesse) la classe degli oggetti e la classe H0 la classe dello sfondo.

Naturalmente la segmentazione non può essere solo binaria e in questo caso esistono più di due classi esistenti. Questo tipo di segmentazione è chiamata multilivello. L'immagine risultante non è binaria, ma è composta da segmenti di luminosità variabile. Formalmente questa operazione può essere scritta come segue:

dove è il numero di livelli e sono le classi di immagine. In questo caso, per ciascuna delle classi, dovrà essere fissata un'opportuna soglia che separi tali classi tra loro. Le immagini binarie sono più facili da archiviare ed elaborare rispetto alle immagini con molti livelli di luminosità.

La cosa più difficile riguardo alla soglia è il processo di determinazione della soglia stessa. La soglia è spesso scritta in funzione della forma:

dove è l'immagine, ed è una caratteristica del punto dell'immagine, ad esempio, la luminosità media nell'area centrata in questo punto.

Se il valore di soglia dipende solo da, cioè è lo stesso per tutti i punti dell'immagine, tale soglia viene chiamata globale. Se la soglia dipende dalle coordinate spaziali, tale soglia viene chiamata locale. Se dipende dalle caratteristiche, tale soglia viene chiamata adattiva. Pertanto, l'elaborazione è considerata globale se si applica all'intera immagine nel suo insieme e locale se si applica a una determinata area selezionata.

Oltre alle distinzioni elencate tra gli algoritmi, esistono molti altri metodi. Molti di essi sono semplicemente una combinazione di altri, ma la maggior parte di essi, in un modo o nell'altro, si basa sull'analisi dell'istogramma dell'immagine originale, tuttavia esistono fondamentalmente altri approcci che non influenzano direttamente l'analisi degli istogrammi o passare da essi all'analisi di alcune altre funzioni.

5.5.2 Metodi per la coltivazione delle aree

I metodi di questo gruppo si basano sull'uso delle funzionalità dell'immagine locale. L'idea del metodo di coltivazione dell'area è quella di analizzare prima il punto di partenza, poi i punti vicini, ecc. secondo qualche criterio di omogeneità, e il successivo inserimento dei punti analizzati in un gruppo o nell'altro (il numero dei punti di partenza deve essere pari al numero delle aree omogenee dell'immagine). Versioni più efficienti del metodo non utilizzano i singoli pixel come punto di partenza, ma suddividono l'immagine in una serie di piccole aree. Successivamente viene controllata l'uniformità di ciascuna area e, se il risultato del test è negativo, l'area corrispondente viene divisa in sezioni più piccole. Il processo continua finché tutte le aree selezionate non superano il test di omogeneità. Successivamente inizia la formazione di aree omogenee utilizzando le estensioni.

La segmentazione a soglia e quella basata sul criterio di omogeneità basato sulla luminosità media spesso non danno i risultati sperati. Questa segmentazione solitamente produce un numero significativo di piccole regioni che non hanno prototipi reali nell'immagine. I risultati più efficaci si ottengono mediante la segmentazione basata sul criterio di omogeneità basato sulla texture (o sulle caratteristiche della texture).

5.5.3 Delineare

Non è raro incontrare il problema di trovare perimetri, curvatura, fattori di forma, superficie specifica degli oggetti, ecc. Tutte le attività elencate sono in un modo o nell'altro legate all'analisi degli elementi di contorno degli oggetti.

I metodi per identificare i contorni (bordi) in un'immagine possono essere suddivisi nelle seguenti classi principali:

metodi di filtraggio passa-alto;

metodi di differenziazione spaziale;

Metodi di approssimazione funzionale.

Comune a tutti questi metodi è la tendenza a considerare i confini come un’area di brusco cambiamento nella funzione di luminosità dell’immagine; Ciò che li distingue è il modello matematico introdotto del concetto di confine e l'algoritmo per la ricerca dei punti di confine.

In conformità con i compiti assegnati, agli algoritmi di estrazione dei contorni vengono imposti i seguenti requisiti: i contorni selezionati devono essere sottili, senza interruzioni e chiusi. Pertanto, il processo di identificazione dei contorni è alquanto complicato a causa della necessità di applicare algoritmi per assottigliare ed eliminare gli spazi vuoti. Tuttavia, ciò non sempre fornisce il risultato desiderato: nella maggior parte dei casi i contorni non sono chiusi e, di conseguenza, non sono adatti per una serie di procedure di analisi.

Il problema che si è presentato può essere risolto contornando con un algoritmo di tracciamento dei bordi utilizzando il metodo “bug”, che consente di evidenziare i contorni chiusi degli oggetti. L'essenza dell'algoritmo è la seguente: viene selezionato un determinato punto di confine iniziale sull'oggetto e il contorno viene tracciato in sequenza fino al raggiungimento del punto iniziale. Nel caso di tracciare il contorno in senso orario, per raggiungere il punto di partenza, viene effettuato uno spostamento pixel per pixel verso destra se il pixel è esterno all'oggetto, e verso sinistra se è sull'oggetto.

Il contorno così selezionato è un codice a catena chiuso, cioè una sequenza di coordinate dei punti di confine di un oggetto, che è molto comoda per risolvere i problemi assegnati.

5.5.4 Metodi basati sul clustering

Il metodo K-medie è un metodo iterativo utilizzato per dividere un'immagine in cluster K. L'algoritmo di base è riportato di seguito:

1. Selezionare i centri dei cluster K, in modo casuale o in base ad alcune euristiche;

2. Posiziona ciascun pixel dell'immagine in un cluster il cui centro è più vicino a questo pixel;

3. Ricalcolare i centri del cluster calcolando la media di tutti i pixel nel cluster;

4. Ripetere i passaggi 2 e 3 fino alla convergenza (ad esempio, quando i pixel rimangono nello stesso cluster).

In questo caso, la distanza viene solitamente considerata come la somma dei quadrati o i valori assoluti delle differenze tra il pixel e il centro del cluster. La differenza si basa solitamente su colore, luminosità, trama e posizione dei pixel o su una somma ponderata di questi fattori.

K può essere scelto manualmente, in modo casuale o euristico.

La convergenza di questo algoritmo è garantita, ma potrebbe non risultare in una soluzione ottimale.

La qualità della soluzione dipende dall'insieme iniziale di cluster e dal valore di K.

5.5.5 Metodi dell'istogramma

I metodi basati sull'istogramma sono molto efficaci rispetto ad altri metodi di segmentazione delle immagini perché richiedono un solo passaggio attraverso i pixel. In questo metodo, viene calcolato un istogramma su tutti i pixel dell'immagine e i suoi minimi e massimi vengono utilizzati per trovare i cluster nell'immagine. Il colore o la luminosità possono essere utilizzati in confronto.

Un miglioramento di questo metodo consiste nell'applicarlo ricorsivamente ai cluster nell'immagine per dividerli in cluster più piccoli. Il processo viene ripetuto con cluster sempre più piccoli finché non compaiono più nuovi cluster.

Uno svantaggio di questo metodo è che potrebbe avere difficoltà a trovare minimi e massimi significativi nell'immagine. In questo metodo di classificazione delle immagini, la metrica della distanza e la corrispondenza della regione integrata sono simili.

Gli approcci basati su istogrammi possono anche essere adattati rapidamente a più fotogrammi mantenendo il vantaggio in termini di velocità in un unico passaggio. Un istogramma può essere costruito in diversi modi quando vengono considerati più fotogrammi. Lo stesso approccio utilizzato per un fotogramma può essere applicato a diversi fotogrammi e, una volta combinati i risultati, i massimi e i minimi difficili da isolare diventano più visibili. È inoltre possibile applicare un istogramma per pixel, in cui le informazioni vengono utilizzate per determinare il colore più comune per una determinata posizione di pixel. Questo approccio utilizza la segmentazione basata su oggetti in movimento e ambienti stazionari, che fornisce un altro tipo di segmentazione utile nel tracciamento video.

5.5.6 Metodi per la coltivazione delle aree

Il primo era il metodo di coltivazione delle aree dai semi. Questo metodo accetta immagini e una serie di semi come input. I semi contrassegnano gli oggetti da evidenziare. Le regioni diventano gradualmente più grandi confrontando tutti i pixel vicini non occupati con la regione. La differenza d tra la luminosità dei pixel e la luminosità media della regione viene utilizzata come misura di somiglianza. Il pixel con la differenza più piccola viene aggiunto all'area corrispondente. Il processo continua finché tutti i pixel non vengono aggiunti a una delle regioni.

Il metodo di coltivazione delle aree dai semi richiede input aggiuntivi. Il risultato della segmentazione dipende dalla scelta dei semi. Il rumore nell'immagine potrebbe essere causato da semi posizionati male. Il metodo per far crescere le regioni senza utilizzare i semi è un algoritmo modificato che non richiede semi espliciti. Si inizia con una regione: il pixel scelto qui ha poco effetto sulla segmentazione finale. Ad ogni iterazione, considera i pixel vicini allo stesso modo del metodo di crescita della regione utilizzando i semi. Ma qui la differenza è che se il minimo non è inferiore alla soglia specificata, viene aggiunto all'area appropriata. Altrimenti, il pixel viene considerato molto diverso da tutte le regioni attuali e viene creata una nuova regione contenente questo pixel.

Una variante di questo metodo si basa sull'uso della luminosità dei pixel. La media e la varianza della regione e la luminosità del pixel candidato vengono utilizzate per costruire le statistiche del test. Se la statistica del test è sufficientemente piccola, il pixel viene aggiunto alla regione e la media e la varianza della regione vengono ricalcolate. Altrimenti, il pixel viene ignorato e utilizzato per creare una nuova regione.

5.5.7 Metodi di taglio del grafico

I metodi di taglio del grafico possono essere applicati efficacemente alla segmentazione delle immagini. In questi metodi, un'immagine è rappresentata come un grafico non orientato ponderato. In genere, un pixel o un gruppo di pixel è associato a un vertice e i pesi dei bordi determinano la somiglianza o la dissomiglianza dei pixel vicini. Il grafico viene poi tagliato secondo un criterio creato per ottenere cluster “buoni”. Ogni porzione di vertici (pixel) prodotta da questi algoritmi è considerata un oggetto nell'immagine.

5.5.8 Segmentazione dei bacini idrografici

Nella segmentazione dei bacini idrografici, l'immagine viene considerata come una mappa dell'area, dove i valori di luminosità rappresentano i valori di altezza relativi ad un certo livello. Se quest'area è piena d'acqua, si formano delle pozze. Quando vengono ulteriormente riempite d'acqua, queste piscine vengono combinate. I punti in cui questi bacini si uniscono sono contrassegnati come linee spartiacque.

In questa interpretazione vengono considerati tre tipi di punti:

1. minimo locale;

2. punti situati su un pendio, vale a dire da cui l'acqua scende fino allo stesso minimo locale;

3. punti massimi locali, vale a dire da cui l'acqua scorre in più di un minimo.

La separazione degli oggetti che si toccano in un'immagine è uno dei problemi importanti dell'elaborazione delle immagini. Spesso per risolvere questo problema viene utilizzato il cosiddetto metodo spartiacque marcatore. Le trasformazioni che utilizzano questo metodo devono identificare i "bacini idrografici" e le "linee spartiacque" nell'immagine elaborando le aree locali in base alle loro caratteristiche di luminosità.

Il metodo Marker Watershed è uno dei metodi di segmentazione delle immagini più efficaci.

Quando si implementa questo metodo, vengono eseguite le seguenti procedure di base:

1. Viene calcolata la funzione di segmentazione. Si tratta di immagini in cui gli oggetti si trovano in zone scure e sono difficili da vedere.

2. Calcolo degli indicatori di primo piano delle immagini. Vengono calcolati sulla base di un'analisi della connettività dei pixel di ciascun oggetto.

3. Calcolo dei marcatori di fondo. Rappresentano pixel che non fanno parte di oggetti.

4. Modifica della funzione di segmentazione in base ai valori di posizione dei marcatori di sfondo e dei marcatori di primo piano.

Una delle applicazioni più importanti della segmentazione per bacini idrografici è la selezione di oggetti di luminosità uniforme (sotto forma di punti) dallo sfondo di un'immagine. Le aree caratterizzate da piccole variazioni di luminosità presentano valori di gradiente piccoli. Pertanto, in pratica, si verifica spesso una situazione in cui il metodo di segmentazione dello spartiacque viene applicato non all'immagine stessa, ma al suo gradiente.

6. Descrizione delle funzioni

Questo articolo presenta un algoritmo di segmentazione delle immagini utilizzando il metodo del marcatore spartiacque.

Principali funzioni utilizzate durante la creazione di un programma:

La funzione fspecial crea un filtro bidimensionale del tipo specificato;

La funzione imfilter è un'operazione morfologica per creare un'immagine gradiente;

La funzione Spartiacque converte uno spartiacque da un'immagine;

La funzione label2rgb converte l'immagine originale in scala di grigi;

La funzione imregionalmax determina tutti i massimi locali dell'immagine;

La funzione imextendedmin trova i punti "bassi" nell'immagine che si trovano più in profondità di un certo livello di soglia rispetto all'ambiente circostante;

La funzione imimposemin modifica l'immagine in scala di grigi in modo che i minimi locali vengano raggiunti solo nelle posizioni contrassegnate; altri valori di pixel vengono aumentati per eliminare tutti gli altri punti minimi locali;

Funzioni imricostruisci e integra - ricostruzione dell'immagine utilizzando operazioni morfologiche di apertura (chiusura).

7. Test degli algoritmi

Nell'implementare questo metodo, sono state eseguite le seguenti procedure:

1. Leggi l'immagine e convertila in scala di grigi (Figura 1);

Figura 1. Immagini originali (a sinistra) e mezzitoni (a destra).

2. Usiamo i valori del gradiente come funzione di segmentazione (Figura 2);

Figura 2. Valori del gradiente.

3. Effettuiamo operazioni morfologiche sull'immagine (Figura 3);

Figura 3. Il risultato dell'applicazione di operazioni di apertura-chiusura morfologica attraverso la ricostruzione dell'immagine.

4. Calcolare i marcatori di primo piano e di sfondo dell'immagine (Figura 4);

Figura 4. Indicatori di primo piano (a sinistra) e di sfondo (a destra) di un'immagine.

5. Costruiamo i confini dei bacini idrografici (Figura 5);

Figura 5. Confini dei bacini idrografici.

6. Visualizzare marcatori e confini degli oggetti su un'immagine mezzitoni (Figura 6);

Figura 6. Marker e confini degli oggetti.

7. Visualizzare il risultato della segmentazione utilizzando un'immagine a colori (a sinistra) e utilizzando una modalità semitrasparente (a destra).

Figura 7 Risultati della segmentazione.

Conclusione

In questo articolo viene sviluppato un metodo spartiacque con marcatori per la segmentazione delle immagini.

L'applicazione diretta dell'algoritmo di segmentazione dello spartiacque determina una segmentazione ridondante, quindi viene utilizzato un approccio basato su marcatori per gestire la segmentazione ridondante.

Un marcatore rappresenta un componente connesso appartenente a un'immagine. Inoltre, prima della segmentazione per bacini idrografici, è stata effettuata la necessaria pre-elaborazione dell'immagine.

Elenco delle fonti utilizzate

1. Gonzalez R., Woods R. Elaborazione delle immagini digitali. - M.: Tekhnosfera, 2005. 1072 p.

2. Pratt W. Elaborazione delle immagini digitali. - M.: Mir, libro 1, 1982. 312 p.

3. Yaroslavskij L.P. Introduzione all'elaborazione digitale delle immagini. -M: Sov. radio, 1979. 312 pag.

4. Pratt W. Elaborazione delle immagini digitali. - M: Pace, libro. 1, 1982. 480 pp.

5. http://www.ict.edu.ru/lib/

6. http://matlab.exponenta.ru/imageprocess/book2/76.php

7. Visilter Yu.V. Elaborazione e analisi di immagini digitali con esempi in LabVIEW e IMAQ VIsion. - M: DMK, 2011. 464 pag.

8. Gonzalez R., Woods R., Eddins S. Elaborazione delle immagini digitali in MATLAB. - M: Tecnosfera, 2006. 616 p.

9. http://matlab.exponenta.ru/imageprocess/book2/48.php

10. Salomon D. Compressione di dati, immagini e suoni. - M.: Tekhnosfera, 2004. 368 p.

Applicazione

Contiamo l'immagine

rgb=imread("C:\Utenti\Nome\Documenti\MATLAB\immagine1.jpeg");

Immaginiamolo come un mezzitono

I=rgb2grigio(rgb);figura,immostra(I);

Calcolare il valore del gradiente

hy=fspecial("sobel"); hx=hy";

Iy=imfilter(double(I), hy, "replica");

Ix=imfilter(double(I), hx, "replica");

gradmag=quadrato(Ix.^2+Iy.^2);

Applichiamo il metodo dello spartiacque

L=spartiacque(gradmag);Lrgb=etichetta2rgb(L);

Operazioni morfologiche

se = strel("disco",15);

Ie = imerode(I, se);Iobr = imreconstruct(Ie, I);

Iobrd = imdilate(Iobr, se);

Iobrcbr = imricostruisci(implementa(Iobrd), implementa(Iobr));

Iobrcbr = incomplemento(Iobrcbr);

Calcoliamo i massimi locali

fgm = imregionalmax(Iobrcbr);

Mettiamo i marcatori sull'immagine

I2 = I;I2(fgm) = 255;

Rimozione di singoli pixel isolati

se2 = strel(ones(3,3));fgm2 = imclose(fgm, se2);fgm3 = imerode(fgm2, se2);

Rimuovi un numero specificato di pixel

fgm4 = bareaaperta(fgm3, 20);

Sovrapponilo all'immagine originale

I3 = I;I3(fgm4) = 255;

Calcoliamo i marcatori di sfondo

bw = im2bw(Iobrcbr, greythresh(Iobrcbr));

Misurazione della distanza dalla linea spartiacque

D = bwdist(bw);DL = spartiacque(D);bgm = DL == 0;

figura, imshow(bgm), titolo("bgm");

Regolazione del valore del gradiente

gradmag2 = imimposemin(gradmag, bgm | fgm4);

L = spartiacque(gradmag2);

Applica marcatori e contorni dell'oggetto all'immagine sorgente

I4 = I;I4(imdilate(L == 0, ones(3, 3)) | bgm | fgm4) = 255;

Visualizza il risultato utilizzando un'immagine a colori

Lrgb = etichetta2rgb(L, "jet", "w", "shuffle");

Applichiamo marcatori e bordi dell'oggetto a un'immagine traslucida

figura, imshow(I), aspetta

immagine = immostra(Lrgb);

set(immagine, "AlphaData", 0.3);

titolo("Lrgb2");

Pubblicato su Allbest.ru

...

Documenti simili

    Sistemi radiografici digitali. Metodi per l'analisi automatica delle immagini in ambiente MatLab. Analisi delle immagini a raggi X. Filtraggio, segmentazione, miglioramento dell'immagine. Funzionalità hardware per la normalizzazione preliminare dell'immagine.

    lavoro del corso, aggiunto il 07/12/2013

    Selezione dei metodi di elaborazione e segmentazione delle immagini. Basi matematiche dei filtri applicati. Istogramma della luminosità dell'immagine. Implementazione software di un metodo complesso di elaborazione delle immagini. Test del software sviluppato.

    lavoro del corso, aggiunto il 18/01/2017

    Studio e implementazione software in ambiente Matlab di metodi per l'elaborazione, l'analisi, il filtraggio, la segmentazione e il miglioramento della qualità delle immagini mediche radiologiche. Sistemi radiografici digitali. Sviluppo di algoritmi su base statica.

    lavoro del corso, aggiunto il 20/01/2016

    Sistemi moderni per l'analisi della texture delle immagini. Esempi di segmentazione della texture di immagini a canale singolo. Utilizzo delle caratteristiche ottenute da un istogramma di luminosità del secondo ordine per classificare le fotografie aeree spettrozonali.

    abstract, aggiunto il 15/01/2017

    La grafica computerizzata e l'elaborazione delle immagini tramite computer elettronici rappresentano l'aspetto più importante dell'uso dei computer in tutte le sfere dell'attività umana. Sviluppo di un “sottosistema di segmentazione lineare”, descrizione dell'algoritmo e della logica.

    tesi, aggiunta il 23/06/2008

    Problemi di elaborazione delle immagini digitali. Metodi di segmentazione delle soglie. Creazione di un programma per rappresentare un disegno sotto forma di matrice e applicarvi l'elaborazione della soglia. Sviluppo di un'interfaccia per un programma per caricare e filtrare immagini con una soglia selezionata.

    lavoro del corso, aggiunto il 12/11/2012

    Descrizione dei metodi matematici per la rappresentazione e l'elaborazione delle immagini grafiche. Descrizione del componente aggiuntivo software sviluppato. Descrizione delle funzioni e dei loro attributi. Presentazione ed elaborazione di immagini grafiche. Risultati dei test del programma.

    lavoro del corso, aggiunto il 27/01/2015

    Il problema dell'elaborazione spaziotemporale delle immagini in presenza di rumore e interferenze. Metodi di ottimizzazione per l'elaborazione di immagini spaziotemporali. La struttura di un programma specializzato, una descrizione della sua interfaccia utente. Costo stimato.

    tesi, aggiunta il 06/10/2013

    Rilevazione dei dettagli e dei loro confini in un'immagine. Applicazione di algoritmi di ranking. Utilizzo di algoritmi di quantizzazione in modalità adattiva in modalità di elaborazione frammento per frammento. Filtraggio lineare generalizzato delle immagini. Restauro delle aree mancanti.

    lavoro del corso, aggiunto il 17/06/2013

    Revisione del software esistente per automatizzare la selezione dei bordi in un'immagine. Sviluppo di un modello matematico per l'elaborazione delle immagini e l'estrazione dei contorni in sfumature di grigio e software per algoritmi di elaborazione delle immagini.

Segmentazione guidata dei bacini idrografici

Molto spesso, quando si analizzano le immagini, si presenta il compito di dividere i pixel dell'immagine in gruppi in base a determinate caratteristiche. Questo processo di divisione in gruppi è chiamato segmentazione. I più noti sono due tipi di segmentazione: la segmentazione in base alla luminosità per le immagini binarie e la segmentazione in base alle coordinate di colore per le immagini a colori. I metodi di segmentazione possono essere considerati come una formalizzazione del concetto di distinzione di un oggetto dallo sfondo o di concetti associati a un gradiente di luminosità. Gli algoritmi di segmentazione sono caratterizzati da determinati parametri di affidabilità e accuratezza dell'elaborazione. Dipendono da quanto vengono prese in considerazione le caratteristiche aggiuntive della distribuzione della luminosità nelle aree degli oggetti o dello sfondo, il numero delle variazioni di luminosità, la forma degli oggetti, ecc.

Esistono molte immagini che contengono l'oggetto di interesse con una luminosità abbastanza uniforme su uno sfondo di luminosità diversa. Gli esempi includono testo scritto a mano, una serie di immagini mediche, ecc. Se la luminosità dei punti dell'oggetto differisce nettamente dalla luminosità dei punti dello sfondo, risolvere il problema della definizione di una soglia è un compito semplice. In pratica, questo non è così semplice, poiché l'immagine in esame è soggetta a rumore ed è consentita una certa variazione dei valori di luminosità. Esistono diversi approcci analitici alla limitazione della luminosità di soglia. Un metodo consiste nell'impostare la soglia a un livello tale che la somma totale degli elementi con luminanza sottosoglia sia coerente con le probabilità a priori di tali valori di luminanza.

Approcci simili possono essere applicati all'elaborazione di immagini a colori e spettrozonali. Esiste anche un tipo di segmentazione chiamata segmentazione del contorno. Molto spesso, l'analisi delle immagini include operazioni come l'ottenimento del contorno esterno delle immagini degli oggetti e la registrazione delle coordinate dei punti su questo contorno. Esistono tre approcci principali per rappresentare i confini di un oggetto: approssimazione della curva, tracciamento del contorno e collegamento dei punti di rilascio. Per completare l'analisi è opportuno notare che esiste anche la segmentazione delle texture e la segmentazione delle forme.

Il tipo più semplice di segmentazione è la segmentazione a soglia. Ha trovato ampia applicazione nella robotica. Ciò è spiegato dal fatto che in quest'area le immagini degli oggetti studiati hanno per la maggior parte una struttura abbastanza uniforme e il loro sfondo risalta nettamente. Ma oltre a questo, per un'elaborazione affidabile è necessario sapere che l'immagine è composta da un oggetto e uno sfondo, la cui luminosità rientra in intervalli strettamente noti e non si intersecano tra loro.

Lo sviluppo delle tecnologie di elaborazione delle immagini ha portato all'emergere di nuovi approcci alla risoluzione dei problemi di segmentazione delle immagini e alla loro applicazione nella risoluzione di molti problemi pratici.

In questo articolo prenderemo in considerazione un approccio relativamente nuovo per risolvere il problema della segmentazione delle immagini: il metodo dello spartiacque. Spieghiamo brevemente il nome di questo metodo e qual è la sua essenza.

Si propone di considerare l'immagine come una mappa del territorio, dove i valori di luminosità rappresentano i valori di altezza relativi ad un certo livello. Se quest'area è piena d'acqua, si formano delle pozze. Quando vengono ulteriormente riempite d'acqua, queste piscine vengono combinate. I punti in cui questi bacini si uniscono sono contrassegnati come linee spartiacque.

La separazione degli oggetti che si toccano in un'immagine è uno dei problemi importanti dell'elaborazione delle immagini. Spesso per risolvere questo problema viene utilizzato il cosiddetto metodo spartiacque marcatore. Le trasformazioni che utilizzano questo metodo devono identificare i "bacini idrografici" e le "linee spartiacque" nell'immagine elaborando le aree locali in base alle loro caratteristiche di luminosità.

Il metodo Marker Watershed è uno dei metodi di segmentazione delle immagini più efficaci. Quando si implementa questo metodo, vengono eseguite le seguenti procedure di base:

    Viene calcolata la funzione di segmentazione. Si tratta di immagini in cui gli oggetti si trovano in zone scure e sono difficili da vedere.

    Calcolo degli indicatori di primo piano delle immagini. Vengono calcolati sulla base di un'analisi della connettività dei pixel di ciascun oggetto.

    Calcolo dei marcatori di sfondo. Rappresentano pixel che non fanno parte di oggetti.

    Modifica della funzione di segmentazione in base ai valori di posizione dei marcatori di sfondo e dei marcatori di primo piano.

    Calcoli basati su una funzione di segmentazione modificata.

In questo esempio, le funzioni Image Processing Toolbox più comunemente utilizzate sono fspecial, imfilter, watershed, label2rgb, imopen, imclose, imreconstruct, imcomplement, imregionalmax, bwareaopen, greythresh e imimposemin.

  • Passaggio 1: leggi un'immagine a colori e convertila in scala di grigi.
  • Passaggio 2: utilizzo del valore del gradiente come funzione di segmentazione.
  • Passaggio 3: etichettare gli oggetti in primo piano.
  • Passaggio 4: calcolare i marcatori di sfondo.
  • Passo 6: Visualizzazione del risultato della lavorazione.

Passaggio 1: leggi un'immagine a colori e convertila in scala di grigi.

Leggiamo i dati dal file Pears.png rgb=imread("pears.png"); e presentarli come un'immagine a mezzitoni. I=rgb2grigio(rgb); imshow(I) text(732,501,"…",... "FontSize",7,"HorizontalAlignment","right")

Passaggio 2: utilizzo del valore del gradiente come funzione di segmentazione.

Per calcolare il valore del gradiente vengono utilizzati l'operatore Sobel, la funzione imfilter e altri calcoli. Il gradiente ha valori grandi ai confini degli oggetti e valori piccoli (nella maggior parte dei casi) all'esterno dei confini degli oggetti.

Hy=fspecial("sobel"); hx=hy"; Iy=imfilter(double(I), hy, "replica"); Ix=imfilter(double(I), hx, "replica"); gradmag=sqrt(Ix.^2+Iy.^2 ); figura, imshow(gradmag,), titolo("valore gradiente")

Pertanto, dopo aver calcolato i valori del gradiente, è possibile iniziare a segmentare le immagini utilizzando il metodo spartiacque del marker considerato.

L=spartiacque(gradmag); Lrgb=etichetta2rgb(L); figura, imshow(Lrgb), titolo("Lrgb")

Tuttavia, senza ulteriori calcoli aggiuntivi, tale segmentazione risulterà superficiale.

Passaggio 3: etichettare gli oggetti in primo piano.

È possibile utilizzare varie procedure per etichettare gli oggetti in primo piano. In questo esempio verranno utilizzate tecnologie morfologiche denominate "apertura tramite restauro" e "chiusura tramite restauro". Queste operazioni consentono di analizzare la regione interna degli oggetti immagine utilizzando la funzione imregionalmax.

Come accennato in precedenza, quando si contrassegnano oggetti in primo piano, vengono utilizzate anche operazioni morfologiche. Diamo un'occhiata ad alcuni di essi e confrontiamoli. Per prima cosa implementiamo l'operazione di espansione utilizzando la funzione imopen.

Se=strel("disco", 20); Io=imopen(I, se); figura, imshow(Io), titolo("Io")

Ie=imerode(I, se); Iobr=imricostruisci(Ie, I); figura, imshow(Iobr), titolo("Iobr")

Le successive operazioni di apertura e chiusura morfologica comporteranno lo spostamento delle macchie scure e la formazione di marcatori. Analizziamo le operazioni di chiusura morfologica. Per fare ciò, usa prima la funzione imclose:

Ioc=imclose(Io, se); figura, imshow(Ioc), titolo("Ioc")

Iobrd=imdilata(Iobr, se); Iobrcbr=imricostruisci(implementa(Iobrd), implementa(Iobr)); Iobrcbr=implementa(Iobrcbr); figura, imshow(Iobrcbr), titolo("Iobrcbr")

Un'analisi visiva comparativa di Iobrcbr e Ioc mostra che la ricostruzione presentata basata sulle operazioni di apertura e chiusura morfologica è più efficace rispetto alle operazioni di apertura e chiusura standard. Calcoliamo i massimi locali di Iobrcbr e otteniamo i marcatori in primo piano.

Fgm=imregionalmax(Iobrcbr); figura, imshow(fgm), titolo("fgm")

Applichiamo i marcatori di primo piano all'immagine originale.

I2=Io; I2(fgm)=255; figura, imshow(I2), titolo("fgm sovrapposto all'immagine originale")

Tieni presente che alcuni oggetti nascosti o chiusi nell'immagine non sono contrassegnati. Questa proprietà influisce sulla formazione del risultato e molti di questi oggetti immagine non verranno elaborati dal punto di vista della segmentazione. Pertanto, gli indicatori di primo piano mostrano solo i confini della maggior parte degli oggetti. I confini così rappresentati sono soggetti ad ulteriore elaborazione. In particolare si tratta di operazioni morfologiche.

Se2=strel(uno(5, 5)); fgm2=imclose(fgm, se2); fgm3=imerode(fgm2, se2);

Come risultato di questa operazione, i singoli pixel isolati dell'immagine scompaiono. Puoi anche utilizzare la funzione bwareaopen, che ti consente di rimuovere un numero specificato di pixel.

Fgm4=bareaaperta(fgm3, 20); I3=Io; I3(fgm4)=255; figura, imshow(I3) titolo("fgm4 sovrapposto all'immagine originale")

Passaggio 4: calcolare i marcatori di sfondo.

Eseguiamo ora l'operazione di marcatura dello sfondo. Nell'immagine Iobrcbr i pixel scuri appartengono allo sfondo. Pertanto, è possibile applicare l'operazione di soglia dell'immagine.

Bw=im2bw(Iobrcbr, greythresh(Iobrcbr)); figura, imshow(bw), titolo("bw")

I pixel dello sfondo sono scuri, ma non possiamo semplicemente eseguire operazioni morfologiche sui marcatori dello sfondo e ottenere i confini degli oggetti che stiamo segmentando. Vogliamo "sfoltire" lo sfondo in modo da ottenere un vero scheletro dell'immagine, o il cosiddetto primo piano dell'immagine a mezzitoni. Questo viene calcolato utilizzando un approccio spartiacque e sulla base delle misurazioni della distanza (rispetto alle linee spartiacque).

D=bwdist(bw); DL=spartiacque(D); bgm=DL==0; figura, imshow(bgm), titolo("bgm")

Fase 5: Calcolo utilizzando il metodo dei marcatori spartiacque basato sulla funzione di segmentazione modificata.

La funzione imimposemin può essere utilizzata per determinare con precisione i minimi locali in un'immagine. Sulla base di ciò, la funzione imimposemin può anche regolare i valori dei gradienti nell'immagine e quindi perfezionare la posizione dei marcatori di primo piano e di sfondo.

Gradmag2=imimposemin(gradmag, bgm | fgm4);

Infine, viene eseguita un'operazione di segmentazione basata sui bacini idrografici.

L=spartiacque(gradmag2);

Passo 6: Visualizzazione del risultato della lavorazione.

Visualizziamo gli indicatori di primo piano sovrapposti, gli indicatori di sfondo e i confini degli oggetti segmentati sull'immagine originale.

I4=Io; I4(imdilata(L==0, unità(3, 3))|bgm|fgm4)=255; figura, imshow(I4) titolo("Marcatori e confini dell'oggetto sovrapposti all'immagine originale")

Come risultato di questa visualizzazione, è possibile analizzare visivamente la posizione degli indicatori di primo piano e di sfondo.

È interessante anche visualizzare i risultati dell'elaborazione utilizzando un'immagine a colori. La matrice generata dalle funzioni watershed e bwlabel può essere convertita in un'immagine truecolor utilizzando la funzione label2rgb.

Lrgb=etichetta2rgb(L, "jet", "w", "shuffle"); figura, imshow(Lrgb) titolo("Lrgb")

È inoltre possibile utilizzare la modalità semitrasparente per sovrapporre una matrice di segni pseudo-colore sull'immagine originale.

Figura, imshow(I), tieni premuto himage=imshow(Lrgb); set(immagine, "AlphaData", 0.3); title("Lrgb sovrapposto all'immagine originale in modalità semitrasparente")

Uno dei compiti principali dell'elaborazione e dell'analisi delle immagini è la segmentazione, ad es. dividere un'immagine in aree per le quali viene soddisfatto un certo criterio di omogeneità, ad esempio evidenziando aree con approssimativamente la stessa luminosità nell'immagine. Il concetto di area dell'immagine viene utilizzato per definire un gruppo coerente di elementi dell'immagine che hanno una certa caratteristica comune (proprietà).
Uno dei modi principali e più semplici è creare la segmentazione utilizzando una soglia. Una soglia è un segno (proprietà) che aiuta a dividere il segnale desiderato in classi. L'operazione di divisione della soglia consiste nel confrontare il valore di luminosità di ciascun pixel nell'immagine con un valore di soglia specificato.
Binarizzazione

L'operazione di soglia che risulta in un'immagine binaria è chiamata binarizzazione. Lo scopo dell'operazione di binarizzazione è ridurre radicalmente la quantità di informazioni contenute nell'immagine. Nel processo di binarizzazione, l'immagine mezzitoni originale, che ha un certo numero di livelli di luminosità, viene convertita in un'immagine in bianco e nero, i cui pixel hanno solo due valori: 0 e 1

La soglia di un'immagine può essere eseguita in diversi modi.

Binarizzazione con soglia inferiore
Binarizzazione con soglia inferiore
La binarizzazione con soglia inferiore è l'operazione più semplice, che utilizza un solo valore di soglia:

Tutti i valori invece del criterio diventano 1, in questo caso 255 (bianco) e tutti i valori (ampiezze) di pixel che sono maggiori della soglia t - 0 (nero).

Binarizzazione con soglia superiore
Talvolta si può utilizzare una variante del primo metodo, che produce un negativo dell'immagine ottenuta tramite il processo di binarizzazione. Operazione di binarizzazione con soglia superiore:

Binarizzazione con doppio vincolo
Per evidenziare aree in cui i valori di luminosità dei pixel possono variare entro un intervallo noto, viene introdotta la binarizzazione con doppia limitazione (t 1
Sono possibili anche altre variazioni con soglie, nelle quali viene fatta passare solo una parte dei dati (filtro della banda media).

Soglia incompleta
Questa trasformazione produce un'immagine che potrebbe essere più semplice da analizzare ulteriormente perché diventa priva di sfondo con tutti i dettagli presenti nell'immagine originale.

Trasformazione della soglia multilivello
Questa operazione forma un'immagine che non è binaria, ma è composta da segmenti con luminosità diverse.

Per quanto riguarda la binarizzazione, essenzialmente è tutto. Sebbene possiamo aggiungere che ce n'è uno globale, che viene utilizzato per l'intera immagine, e ce n'è anche uno locale, che cattura parte dell'immagine (immagine).

Soglia locale
Metodo Otsa
Il metodo utilizza un istogramma della distribuzione dei valori di luminosità dei pixel dell'immagine raster. Un istogramma viene costruito utilizzando i valori p i = n i /N, dove N è il numero totale di pixel nell'immagine, n i è il numero di pixel con livello di luminosità i. L'intervallo di luminosità è diviso in due classi utilizzando la soglia del livello di luminosità k,k - un valore intero da 0 a L. Ciascuna classe corrisponde a frequenze relative ω 0 ω 1:

Livelli medi per ciascuna delle due classi di immagini:
Successivamente, viene calcolato il valore massimo per valutare la qualità della divisione dell'immagine in due parti:
dove (σ cl)2=ω 0 ω 1 (μ 1 -μ 0) 2 è la varianza interclasse e (σ totale) 2 è la varianza totale per l'intera immagine.

Soglia basata sul gradiente di luminosità dell'immagine
Supponiamo che l'immagine analizzata possa essere divisa in due classi: oggetti e sfondo. L'algoritmo per il calcolo del valore di soglia è composto dai seguenti 2 passaggi:
1. Per ogni pixel viene determinato il modulo del gradiente di luminosità
immagini

2. Calcolo della soglia:
Totale
Ho condiviso volentieri con te ciò che ho scoperto; in futuro, se ci riuscirò e avrò tempo, proverò a implementare alcuni algoritmi. Questa è solo una piccola parte di tutto ciò che esiste oggi, ma sono felice di condividere anche questa.
Grazie per l'attenzione.

I migliori articoli sull'argomento