PDA

View Full Version : Matlab - Image processing


suspence
25-01-2006, 21:56
ciao a tutti,

ragazzi, sapete dove posso trovare della documentazione sugli algoritmi per la segmetazione delle immagini?? :confused:


grazie......

suspence
28-01-2006, 16:51
piccolo up... :sofico:

suspence
10-02-2006, 17:49
ultimo piccolo up :sofico:

^TiGeRShArK^
10-02-2006, 19:32
ehm..no..
ma cmq ke intendi per segmentazione delle immagini??? :fagiano:
spezzare un immagine in piu' parti x caso? :mbe:

suspence
10-02-2006, 21:10
si, esatto...

tecniche tipo region growing e lo split.... :cry:

Bane
11-02-2006, 00:14
Visto che non ti risponde nessuno, ci provo io... =)
Sinceramente non credo di poterti essere di grande aiuto sulla
segmentazione 2D, ma non si puo' mai sapere.

Io ho tonnellate di papers dispersi sull'HD sulla segmentazione,
ma riguardano quasi esclusivamente la segmentazione di mesh
o immagini range (quindi si sta nel 3D).
Forse ho ancora qualcosa di generico, quindi applicabile anche
alle immagini 2D, pero' e' tutta roba abbastanza teorica, niente
(pseudo)codice per intenderci, tantomeno in matlab =)
Potresti comunque ricavarne qualcosa, ma alla fin fine dipende
da cosa ci devi fare, se e' un programmino "scemo" (in senso
lato, chiaro =)) per un progetto, probabilmente rischio solo di
sommergerti con pdf inutili che ti "allontanano" dall'obiettivo...

Comunque, hai fatto qualche ricerca generica?
Online dovresti trovare materiale in abbondanza sulle tecniche
classiche di segmentazione 2D... =)

suspence
11-02-2006, 14:12
Grazie per l'aiuto...

dovrebbe essere una funzione matlab per permettere di applicare il region growing sul delle immagini.... :cry:

Bane
13-02-2006, 23:12
Ok, a te serve proprio il codice matlab gia' scritto?
Nel qual caso temo di non poterti aiutare...

Altrimenti provo a vedere se ho un po' di speudo-codice da
qualche parte. Comunque, concettualmente il region growing
e' un algoritmo piuttosto semplice, non dovresti avere grossi
problemi nell'implementare qualche variante...

dupa
14-02-2006, 09:31
mi spiegate in breve che sono segmentazione e region growing?
grazie

Bane
14-02-2006, 12:56
La segmentazione consiste nel suddividere l'insieme di dati in ingresso (immagine 2D, mesh 3D, nuvola di punti 3D, immagine range, ecc.) in regioni significative (ogni regione, ad esempio, potrebbe rappresentare un oggetto o una parte di esso). Le informazioni cosi' ricavate possono essere utilizzate per vari scopi, come riconoscimento, matching di immagini range, ricostruzione di superfici... varia quindi dalla tipologia dei dati in ingresso e da cio' che si vuole ottenere.

Il region growing e', appunto, un algoritmo di segmentazione che prevede di scegliere un certo numero di dati isolati, definiti seed, da utilizzare come regioni di partenza per il successivo processo di accrescimento. Iterativamente, i dati adiacenti ad ogni regione vengono quindi analizzati e, se soddisfano alcuni requisiti di omogeneita', vengono aggregati a quella regione. Quando tutte le regioni raggiungono la massima dimensione possibile, si procede alla fusione di quelle adiacenti aventi caratteristiche simili.
Il risultato finale e' sensibile a due fattori principali: la scelta dei seed, che devono essere in grado di rappresentare in modo valido le regioni, e la scelta del criterio di aggregazione, che dipende fortemente dalla tipologia dei dati in ingresso.
Un metodo per migliorare questa tecnica di segmentazione prevede di sfruttare nozioni aggiuntive, ricavabili ad esempio dagli algoritmi per la ricerca degli edge.

Boh, credo possa bastare... =)

mjordan
14-02-2006, 19:39
ciao a tutti,

ragazzi, sapete dove posso trovare della documentazione sugli algoritmi per la segmetazione delle immagini?? :confused:


grazie......

Suppongo cerchi degli algoritmi di edge detection, tipo Sobel, Prewitt, operatore di Roberts o Zero crossing oppure algoritmi di thresholding e region splitting/merging.
Soprattutto per Matlab, utilizzando l'Image Processing Toolbox, io ti consiglio un libro che ho studiato negli ultimi mesi e che ho trovato ottimo e cioè:

"Digital Image Processing Using Matlab" di Gonzalez, Woods e Eddins.
L'editore è Pearson/Prentice Hall International.

Se sei interessato a questi argomenti è una tappa quasi obbligata. Io l'ho trovato particolarmente utile per il suo taglio applicativo, soprattutto perchè grazie a questo testo ho finalmente compreso la trasformata di Hough per realizzare un algoritmo di peak detection ;)

Il libro è questo:
http://images.amazon.com/images/P/0130085197.01._SCLZZZZZZZ_.jpg

Questa è una materia da veri uomini, soprattutto perchè da valore alle nozioni di analisi matematica, algebra e geometria che si sono apprese tanto faticosamente :sofico:
E' un po costoso (io l'ho pagato 120€ ai tempi, non so se ora sia sceso, ma li vale tutti).

mjordan
14-02-2006, 19:46
Dimenticavo, puoi trovare molti esempi utili in Matlab, sul sito del libro:

http://www.imageprocessingplace.com/

C'è molta roba.

Ciao ;)

mjordan
14-02-2006, 20:19
Ho visto ora che ti serve una routine di region growing...
Questo è quello che ho scritto tempo fa:


function [g, NR, SI, TI] = regiongrow(f, S, T)

f = double(f);

% Se S e' uno scalare, ottieni il "seme" dell'immagine.
if numel(S) == 1
SI = f == S;
S1 = S;
else
SI = bwmorph(S, 'shrink', Inf);
J = find(SI);
S1 = f(J); % Questo e' l'array dei semi.
end

TI = false(size(f));

for K = 1:length(S1)
seedvalue = S1(K);
S = abs(f - seedvalue) <= T;
TI = TI | S;
end

% Assegnamo un intero diverso ad ogni regione connessa.
[g, NR] = bwlabel(imreconstruct(SI, TI));


Tempo fa usavo Matlab 6.5 ma credo non dovresti avere problemi usando Matlab 7

Ciao ;)

suspence
21-02-2006, 21:03
Grazie dell'aiuto, ma dopo essermi scervellato un pò l'ho fatto da solo... :D :sofico:

Grazie comunque a tutti....

mjordan
22-02-2006, 21:35
Grazie dell'aiuto, ma dopo essermi scervellato un pò l'ho fatto da solo... :D :sofico:

Grazie comunque a tutti....

:ncomment: